我试图解决一个表达式,并得到zero division error,而/已经解决,并不存在于堆栈中,但我们得到错误,而乘以数字,这是奇怪的.

请判断以下代码以供参考:

def reversePolishNotation(tokens):
    # Write your code here.
    operators = [ "+", "-", "*", "/" ]
    stack = []

    for token in tokens:
        if token not in operators:
            stack.append(int(token))
        else:
            firstNumber = stack.pop()
            secondNumber = stack.pop()

            switcher = {
                "+": firstNumber + secondNumber,
                "-": secondNumber - firstNumber,
                "*": firstNumber * secondNumber,
                "/": secondNumber / firstNumber
            }

            sum = switcher.get(token)
            
            stack.append(int(sum))
    
    return int(stack[-1])


resp = reversePolishNotation(["4", "-7", "2", "6", "+", "10", "-", "/", "*", "2", "+", "3", "*", "0", "*"])

推荐答案

问题似乎出在交换机的实现上.您可以对If-Else条件执行同样的操作.判断下面的代码,它为给定的输入返回zero,并且与zeroDivisionError没有冲突.

def reversePolishNotation(tokens):
    # Write your code here.
    operators = [ "+", "-", "*", "/" ]
    stack = []

    for token in tokens:
        if token not in operators:
            stack.append(int(token))
        else:
            firstNumber = stack.pop()
            secondNumber = stack.pop()

            if token == "+":
                sum = firstNumber + secondNumber
            elif token == "-":
                sum = secondNumber - firstNumber
            elif token == "/":
                sum = secondNumber / firstNumber
            else:
                sum = firstNumber * secondNumber
            
            stack.append(int(sum))
    
    return int(stack[-1])

Python相关问答推荐

在给定区间列表的情况下计算不重叠对的数量的最佳方法

sklearn ridgeCV与ElasticNetCV

是否可以在dash-cytoscape中使用宽度优先布局中的epthSort参数?

如何对词典列表使用Join方法,然后为值添加字符串

如何分组并查找新的或正在消失的项目

WinError 193%1不是有效的Win32应用程序.AZ二头肌

子类中的__epr__没有显示所有参数,这是正常的做法吗?

将字符串的CSV转换为Python数组

如何编写将字符串转换为参数类型的静态类型的Python函数?

numpy.fromfunction()的行为

当关系的一方已经存在于数据库中时,使用SQLModel插入多对多关系对象

绘制随机数和推进位生成器会产生不同的结果

提取亚马逊畅销书价格-网络抓取

子情节中的绘图热图:如何设置纵横比?

基于多列的透视并在Python Dataframe中重新排列数据

使用PANDA将JSON数据拆分为多列

显示给定条件下的行索引号

如何加快Python进程之间的数据交换?

AttributeError:找不到调用运算符";bpy.ops.import_scene.obj";错误

如何在matplotlib中强调圆的一部分