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

Python求数字平均值程序异常:输入2、3、4结果为2而非3

问题分析与解决方案

你的代码问题在于把终止输入的-1也计入了计算列表。比如输入2、3、4后输入-1,列表会变成[2,3,4,-1],总和是8,长度是4,8/4=2,这就是得到错误平均值的原因。

修正方案一:添加前判断是否为-1

修改循环逻辑,只有当输入的数字不是-1时,才添加到列表中:

number_list = []

while True:
    number = int(input('Enter a number: '))
    if number == -1:
        break
    number_list.append(number)

# 避免空列表报错
if number_list:
    print(sum(number_list) / len(number_list))
else:
    print('没有输入有效数字')

修正方案二:循环结束后移除-1

如果坚持保留原while-else结构,可以在计算前把列表末尾的-1移除:

number = 0
number_list = []

while number != -1:
    number = int(input('Enter a number: '))
    number_list.append(number)
else:
    # 移除终止用的-1
    number_list.pop()
    if number_list:
        print(sum(number_list) / len(number_list))
    else:
        print('没有输入有效数字')

注意:两种方案都加入了空列表判断,避免用户直接输入-1导致除以0的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:40:26