Python: Итак, я работаю над программой (которая является заданием класса), которая будет принимать выражение, такое как 3/4/5 или 32432/23423/2354325 или 3425*343/254235 или 43252+34254-2435 и т. д. (для все операторы из +,-,/,*). и решит выражение.
Я НЕ МОГУ ИСПОЛЬЗОВАТЬ EVAL!!
Я не могу использовать коды более высокого уровня, я ограничен, самое большее, использованием строковых манипуляторов с приведенного ниже веб-сайта для разделения строки.
http://docs.python.org/2/library/stdtypes.html#typesseq
Мой метод состоит в том, чтобы посмотреть на выражение, которое вводит пользователь, а затем использовать функцию поиска, чтобы найти ОПЕРАТОРЫ, а затем использовать эти операторы и функцию среза (например, s[0:x]). То, что у меня есть, приведено ниже, и, к сожалению, оно не работает: * обратите внимание, что операторы печати находятся там только для целей отладки. РЕДАКТИРОВАТЬ: почему x не определен, когда я запускаю программу и ввожу выражение?
z= (input("expression:")).strip()
def finding(z):
if "/" in z:
x=z.find("/")
print("hi1")
elif "*" in z:
x=z.find("*")
print("hi2")
elif "+" in z:
x=z.find("+")
print("hi3")
elif "-" in z:
x=z.find("-")
print("hi4")
else:
print("error, not math expression")
return x
def Parsing(z,x):
x= finding(z)
qw=z.s[0:x]
print (qw)
# take the x-value from function finding(z) and use it to split
finding(z)
Parsing(z,x)