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

Python循环逻辑异常:无法终止且无法实现连续累加

问题分析与修复方案

问题根源

  • 变量作用域错误:last_answer被定义在while True循环内部,每次循环都会被重置为None。哪怕用户选择继续(输入Y),下一次循环开始时last_answer又变回None,永远走不到累加分支,只能反复进入初始的两个数字输入流程。
  • 逻辑分支不完整:累加分支没有打印结果、也没有询问是否继续的逻辑,就算走到这个分支也无法正常交互。

修复后的代码

def showAddition():
    print("You have selected: \"Addition\"")
    
    last_answer = None  # 变量移到循环外,保留上一次计算结果
    while True:
        if last_answer is not None:
            # 连续累加分支
            next_num = int(input("Please input another number: "))
            answer = calc.addNums(last_answer, next_num)
            print(f'Your answer is {answer}')
        else:
            # 首次输入两个数字相加
            num1 = int(input("Please enter your first number: "))
            num2 = int(input("Please enter your second number: "))
            answer = calc.addNums(num1, num2)
            print(f'Your answer is {answer}')
        
        # 统一处理继续/退出逻辑
        continue_prompt = input("Would you like to continue? Y/N\n")
        if continue_prompt.upper() in ("Y", "YES"):
            last_answer = answer
        else:
            break

关键修改说明

  • 将last_answer初始化移到循环外部,确保循环迭代时能保留历史计算结果。
  • 调整判断条件为last_answer is not None,更准确识别是否需要进入累加流程。
  • 把询问是否继续的逻辑移到循环末尾,统一处理首次计算和累加后的交互,避免代码重复。
  • 在累加分支添加结果打印,让用户能直观看到每次累加后的新结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:42:43