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

为何我用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:01:02