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

Python计算器代码异常:执行加法操作后无法重复计算

小型计算器循环逻辑及执行流程问题排查与修复

核心问题分析

你的代码存在以下几个关键问题,导致加法操作后无法循环:

  • 操作逻辑位置错误:非加法(乘、除、减)的计算代码写在while循环外部,循环结束后才会执行,完全不符合交互流程;且加法操作后的循环控制逻辑依赖局部变量c,非加法操作会因c未定义触发报错。
  • 循环控制逻辑混乱:进入循环后立刻设置b=200,初始a=100,第一次循环结束时若未主动修改a,直接退出循环;循环变量的修改逻辑仅在加法分支中存在,逻辑不完整。
  • 条件判断语法错误:if c == 'no' or 'No' 是错误的语法,or后的'No'会被视为布尔值True,导致该条件永远成立,无论输入什么都会将b=1000终止循环。
  • 变量命名冗余:不同操作使用独立变量名(如y2/z2),增加代码复杂度,无实际必要。

修正后的代码

while True:
    print("Please select an operation. ")
    print("1. Multiply")
    print("2. Divide")
    print("3. Subtract")
    print("4. Add")
    
    x = int(input("Please enter your operation number. "))
    
    # 处理所有运算操作
    if x == 4:
        y = int(input("Please enter your first number. "))
        z = int(input("Please enter your second number. "))
        result = y + z
        print(result)
    elif x == 2:
        y = int(input("Please enter your first number. "))
        z = int(input("Please enter your second number. "))
        # 新增除零错误判断
        if z == 0:
            print("Error: Cannot divide by zero!")
            continue
        result = y / z
        print(result)
    elif x == 3:
        y = int(input("Please enter your first number. "))
        z = int(input("Please enter your second number. "))
        result = y - z
        print(result)
    elif x == 1:
        y = int(input("Please enter your first number. "))
        z = int(input("Please enter your second number. "))
        result = y * z
        print(result)
    else:
        print("Invalid operation number!")
        continue
    
    # 询问是否继续计算
    c = input("Would you like to do another calculation? ").lower()
    if c != 'yes':
        break

关键改动说明

  1. 简化循环控制:用while True替代复杂的a/b变量判断,循环默认持续执行,用户选择不继续时通过break退出,逻辑更直观。
  2. 统一操作逻辑位置:所有运算操作的代码移至循环内部,确保选择操作后立刻执行计算。
  3. 修正条件判断:将用户输入转为小写后判断,无需分别处理大小写;用elif替代独立if,减少无效判断。
  4. 增加异常防护:除法操作中新增除零判断,避免运行时崩溃。
  5. 简化变量命名:统一使用y/z/result变量,降低代码复杂度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:35:28