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
相关产品推荐
相关产品推荐

