You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算器代码无法运行求助:更换Kernel后仍无响应且无报错

问题排查与修正方案

我帮你梳理了代码里的几个关键问题,这些问题会导致程序表现异常,甚至在特定场景下隐性报错:

1. 减法函数逻辑完全错误

你的subtract函数里写了difference = num2 - num2,这意味着不管输入什么数值,减法结果永远是0,完全不符合预期。修正后的代码应该是:

# This is the subtraction function of a calculator
def subtract(num1, num2):
    difference = num1 - num2  # 若你需要的是被减数减减数,就用这个;如果是num2-num1也可以按需调整
    return difference

2. 除法函数逻辑颠倒

当前divide函数判断的是num1 != 0,但计算的是num2 / num1,和用户输入逻辑不符:用户输入第一个数num1、第二个数num2,选择/时应该是num1 ÷ num2,而且需要判断除数num2不能为0。修正后:

# This is the division function of a calculator
def divide(num1, num2):
    if num2 != 0:  # 除数是第二个输入的数,所以判断num2不为0
        quotient = num1 / num2
        return quotient
    else:
        return "Error: Cannot divide by zero!"  # 返回错误提示比返回0更直观

3. 无效操作分支未处理answer变量

当用户输入的操作符不是+-*/时,代码仅打印错误信息,但后续仍会执行print(str(answer)),此时answer变量未被定义,会触发NameError。可以给answer赋值错误提示,或者直接退出程序:

else:
    answer = "This is not a valid operation!"
print(str(answer))

或者更直接的处理:

else:
    print("This is not a valid operation!")
    exit()  # 直接退出,避免后续执行未定义变量的打印语句

4. 注释规范问题

你在函数上方的说明文字没有用Python注释语法,虽然不影响运行,但会降低代码可读性,建议改成注释格式:

# This is the addition function of a calculator
def add(num1, num2):
    sum = num1 + num2
    return sum

或者更规范的文档字符串:

def add(num1, num2):
    """This is the addition function of a calculator"""
    sum = num1 + num2
    return sum

把这些问题修正后,程序应该就能正常运行并输出正确结果了,你可以试试运行修正后的代码~

内容的提问来源于stack exchange,提问作者Alexandra Walsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:33:42