逆波兰表达式:逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法,按此方法,每一运算符都置于其运算对象之后,故称为后缀表示。(来自百度百科)
问题提出:计算逆波兰表达式
eg:中缀表达式(也就是我们最常见到的表达式表达方式):(1+2)+(4-3)*(10/5)——>后缀表达式:12+43-+105/*
我们以字符串的形式输入后缀表达式,首先我们需要分解该字符串,将数字和符号区别开来,根据后缀表达式的特征,我们可以很容易看出,每个符号前面至少会出现两个数字,遍历字符串,当遇到数字的时候我们只需要将数字存放起来,等待遇到符号时我们就可以将前面存放的字符串进行计算,计算的结果再存放在列表中就好,这样在遇到符号的时候我们可以始终保证列表中有两个数字提供计算。
贴上代码:
ops = {
'+': float.__add__,
'-': float.__sub__,
'*': float.__mul__,
'/': float.__truediv__