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

Python按条件终止循环问题:运行总计计算逻辑异常求助

问题诊断

第一版代码问题

  • 无循环终止逻辑:检测到负数输入后仅打印结果,未加break语句跳出死循环,导致程序会持续要求输入新数字
  • 累加时机错误:输入值未做有效性校验就直接累加到总和,负数、超出范围的无效值都会被计入总和,不符合需求

第二版代码问题

  • 累加逻辑缺失:仅在输入负数时执行了累加操作,正常输入的1~最大值区间的有效数字完全没有累加步骤,最终总和只会保留最后输入的负数数值
  • 分支逻辑不全:仅覆盖了「负数终止」「无效值提示」两个分支,漏掉了「有效输入累加」的核心逻辑
修正后代码
END = int(input('Enter a maximum value:'))
total = 0
while True:
    number = int(input('Enter a number between 1 and the maximum:'))
    # 先判断是否是终止信号
    if number <= -1:
        break
    # 再判断是否是无效值
    elif number < 1 or number > END:
        print('Invalid number')
    # 有效输入执行累加
    else:
        total += number
# 循环结束后输出累计总和
print('Sum of all valid numbers entered:', total)

逻辑说明

  • 终止信号(负数)仅用来结束循环,不会被计入总和
  • 超出1~END范围的输入仅做提示,不累加
  • 只有符合范围要求的有效数字才会被计入累计总和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:06:03