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

Python开发求助:实现指定范围数值累加的while循环程序

代码问题分析与修正

原代码存在的问题

  • 循环内的输入未赋值给number变量,导致循环条件永远基于第一次输入的值,无法更新,要么死循环要么提前终止
  • 范围判断逻辑错误:number < min_ and number > max_是不可能成立的,应该用or连接两个条件
  • 无效输入的处理流程错误:输入无效值后仅重新输入,但未将新值赋值给number,也未回到循环逻辑
  • 负数终止逻辑不完善:初始输入如果是负数,循环直接跳过,且未正确处理输入负数时的终止流程
  • 初始total赋值在第一次输入之后,导致第一次有效输入的累加逻辑顺序错误

修正后的代码

min_ = int(input('Enter the minimum value: '))
max_ = int(input('Enter the maximum value: '))

total = 0
while True:
    number = int(input(f'Enter a number between {min_} and {max_} to add to the total: '))
    # 输入负数直接终止循环
    if number < 0:
        break
    # 判断是否在有效范围内
    if min_ <= number <= max_:
        total += number
    else:
        print('Invalid number')

print('Sum of all valid numbers you entered: ', total)

修正说明

  • 改用while True无限循环,通过break在输入负数时终止,逻辑更清晰
  • 每次循环内先获取输入并赋值给number,确保循环条件能正确更新
  • 先判断是否为负数,满足则直接跳出循环
  • 范围判断使用min_ <= number <= max_的简洁写法,逻辑正确
  • 无效输入时仅提示错误,不中断循环,让用户继续输入
  • 将total初始化为0放在循环前,避免累加顺序错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:55:17