Я работаю с нотациями и стеками после исправления, и мне интересно, можно ли / как суммировать элементы списка, стека и т. Д. При наличии строки '+'?
Для примера я просто собираюсь использовать список вместо стека (хотя, если у вас есть решение для стека, во что бы то ни стало).
Итак, возможно, если бы у меня было:
string = '1 2 3 +'
и превратил это в список:
['1','2','3','+']
, если правильно будет вычислено:
6
Вот то, что я думал, будет работать (Примечание: Функция valid (), которую я сделал, проверяет, может ли она быть преобразована в число с плавающей точкой на основе строки. Работает нормально ):
def post_fix(string):
lst = []
for i in string:
if '(' in lst:
pass
elif valid(i) is True:
int(i)
lst.append(i)
elif '+' in string:
'+' == sum(lst)
print(sum(lst))
post_fix('1 2 3 +')
Как я могу заставить это работать так, чтобы, если '+'или' - 'и т. д., он будет выполнять соответствующую операцию?
Примечание: Для простоты вы можете просто предположить, что оператор всегда будет в конце.Так что не беспокойтесь о чем-то вроде «12 + 34 *», хотя, если у вас есть решение для этого, это будет высоко ценится.