Разбор математического выражения в Python и решение, чтобы найти ответ

Я довольно новичок в программировании. Это связано с питоном. Поэтому идея состоит в том, чтобы взять выражение, такое как 3/5 или, самое большее, 3/5 * 2 (самое большее два оператора, обратите внимание, что операторы могут быть любыми из +, -, /, *) и решить его. Пробел может существовать где угодно в выражении.

Пользователь вводит выражение, скажем, 3/5, и программе необходимо решить выражение и отобразить ответы. То, что я попробовал, ниже. Обратите внимание, что я попробовал только первую часть, как только я смогу правильно разделить исходное выражение, которое вводит пользователь (который будет строкой), создание функций будет легкой частью:

expres= str(input("something:"))

ssplit= hit.partition("/")
onec= int((ssplit[0].lstrip()).rstrip())
twoc= (ssplit[1].lstrip()).rstrip()
threec= int((huns[2].lstrip()).rstrip())


print(onec,"...",twoc,"...",threec) #just a debug test print

Итак, выше, я могу взять выражение наподобие 3/5 и разделить его на три отдельные строки: 3, / и 5. Я также могу удалить все пробелы до и после операторов / операндов. У меня проблемы с разбиением выражений, таких как 4/5 + 6, потому что я не могу вставить код для ssplit [3] или ssplit [4], а затем ввести выражение типа 3/5, потому что оно не будет определено. По сути, мне нужна была ваша помощь, чтобы узнать, как разбить выражение, например 3 / 4-6 и т. Мне тоже нужна помощь с линиейssplit= hit.partition("/")"так что он будет смотреть на введенное выражение и работать с +, - и *, а также с благодарностью. Любая и вся помощь приветствуется. Также, если мой код выше выглядит противным и неэффективным, пожалуйста, дайте мне критику. Спасибо!

Заметьте, я не могу и не хочу использовать eval. Порядок операций обязателен. Я не могу использовать сложные команды. Мне нужно, чтобы все было просто, самое большее, что я могу использовать, это строковые библиотеки, конвертирование между строками / целыми числами / числами с плавающей точкой и т. Д., И если, и, и т. Д. заявления. Я также могу использовать функции.

Ответы на вопрос(3)

Ваш ответ на вопрос