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

