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

计算用户输入整数平均值时遇ZeroDivisionError问题求助

问题修复方案

你的程序存在两个核心问题:

  1. 仅输入0时,print("No numbers entered.")永远不会执行——因为break语句在它前面,触发条件后会直接终止循环,跳过后续代码。
  2. 空列表调用average函数会触发ZeroDivisionError,因为len(mylist)为0,除法无意义。

以下是修复后的代码:

number_list = []

def average(mylist):
    return sum(mylist) / len(mylist)

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

# 循环结束后判断输入情况
if not number_list:
    print("No numbers entered.")
else:
    print("The average of the numbers entered is", average(number_list))

关键修改说明:

  • 简化循环内的判断逻辑:只要输入0就直接终止循环,把输入有效性的检查放到循环结束后统一处理,逻辑更清晰。
  • 循环结束后先判断number_list是否为空:如果为空则输出提示,否则再计算平均值,彻底避免ZeroDivisionError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:33:14