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

如何仅统计有效整数输入?Python计数逻辑Bug修复

解决无效输入被计入统计次数的问题

你的问题出在统计次数的时机不对:当前代码里,count = int(count) + 1是在尝试把输入转成整数之前执行的——哪怕输入是无效内容(比如"bla bla car"),这行代码已经跑完了,所以错误地累加了count。

修改思路很简单:只有当输入成功转换成整数后,再更新count和total的值,同时把判断'done'的逻辑移到try块外面(毕竟输入'done'是合法的终止指令,不需要走异常捕获)。另外建议不要用裸except,明确捕获ValueError更安全,避免意外捕获其他类型的错误。

修改后的代码如下:

count = 0
total = 0
avg = 0

while True:
    line = input('Enter a number: ')
    # 先处理终止指令,无需进入异常捕获逻辑
    if line == 'done':
        break
    try:
        # 先尝试将输入转为整数,失败直接触发异常
        num = int(line)
        # 只有转换成功才更新统计数据
        count += 1
        total += num
        avg = total / count
    except ValueError:
        print('Invalid input')
        continue

print(total, count, avg)

测试你给出的输入序列:5、4、7、"bla bla car"、"done",输出会是16 3 5.333333333333333,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:05:49