为何我用while循环实现的数字平均值计算程序未按预期运行?
代码问题排查与修正
存在的问题:
- 核心逻辑完全颠倒:需求是输入
-1时停止程序,其他数字加入列表计算平均值。但原代码中只要输入大于-1的数字就直接退出循环,反而把-1添加进了列表,完全搞反了判断条件。 - 多余的类型转换:已经通过
num = int(input(...))将输入转为整数,后续append(int(num))属于重复操作,毫无必要。 - 未处理边界错误:如果用户直接输入
-1,inputs列表为空,执行sum(inputs)/len(inputs)会触发除以0的运行错误。
修正后的代码:
num = 0 inputs = [] while True: num = int(input("Please enter a number between -1 and 5: ")) # 输入-1时停止循环 if num == -1: break # 其他数字加入列表(这里可以加个判断确保输入在0-5之间,符合提示的范围) if 0 <= num <=5: inputs.append(num) # 先判断列表是否为空,避免除以0 if inputs: print(sum(inputs) / len(inputs)) else: print("没有有效输入,无法计算平均值")
内容的提问来源于stack exchange,提问作者Katy Armstrong
相关产品推荐
相关产品推荐

