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

如何在用户输入为空时退出循环并计算已输入数字的平均值

报错原因

你代码的核心问题是直接对输入结果执行int转换:input()返回的是字符串类型,当用户输入为空时,空字符串无法被解析为整数,int()方法会直接抛出ValueError,程序根本不会执行到你后续判断输入是否为空的逻辑。

你之前尝试的几种判断失效的原因:

  • if number == '':此时number已经被转为整数类型,不可能和空字符串相等,判断永远不生效
  • if number == int(""):int("")本身就是非法操作,执行时会直接抛出错误
  • if len(number) == 0:整数类型没有长度属性,执行会直接报错

修复方案

调整执行顺序:先拿到原始输入字符串,先判断是否为空,确认不为空后再转成整数,同时新增计数变量统计有效输入的数字个数,用于计算平均值。

完整可运行代码:

total = 0
count = 0

while True:
    # 先获取原始输入字符串
    input_content = input('Please enter the number: ')
    # 输入为空直接终止循环
    if input_content == '':
        break
    # 处理非数字输入的异常情况
    try:
        num = int(input_content)
    except ValueError:
        print("请输入合法的数字")
        continue
    total += num
    count += 1

# 避免无有效输入时除以0报错
if count > 0:
    average = total / count
    print(f"平均值为:{average}")
else:
    print("未输入任何有效数字")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:33:00