<分区>
这几天在学习Python,写了这段代码来计算后缀表达式。
postfix_expression = "34*34*+"
stack = []
for char in postfix_expression :
try :
char = int(char);
stack.append(char);
except ValueError:
if char == '+' :
stack.append(stack.pop() + stack.pop())
elif char == '-' :
stack.append(stack.pop() - stack.pop())
elif char == '*' :
stack.append(stack.pop() * stack.pop())
elif char == '/' :
stack.append(stack.pop() / stack.pop())
print stack.pop()
有没有办法避免巨大的 if else block ?比如,是否有模块采用字符串形式的数学运算符并调用相应的数学运算符或一些使这变得简单的 python 惯用语?