我想编写一个函数来评估以列表形式传递的后缀表达式。到目前为止,我已经有了以下内容:
但我觉得我的方法不正确,能帮忙吗?
def evalPostfix(text):
s = Stack()
for symbol in text:
if symbol in "0123456789":
s.push(int(symbol))
if not s.is_empty():
if symbol == "+":
plus = s.pop() + s.pop()
if symbol == "-":
plus = s.pop() - s.pop()
if symbol == "*":
plus = s.pop() * s.pop()
if symbol == "/":
plus = s.pop() / s.pop()
但我觉得我的方法不正确,能帮忙吗?
plus
是一个糟糕的变量名,因为它不仅保存加法的结果,还保存任何操作的结果。你没看到代码中吗?我应该在之前的评论中添加:这段代码只适用于每个表达式只有一个运算符的情况。 - abcd