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

Python实现输入数字直到输入'done'后统计数据的问题

解决Python数字统计程序的输入判断问题

嘿,我懂你遇到的这个困惑啦——要同时处理用户输入的数字和终止指令done,核心关键就是先判断终止条件,再处理数字转换,不然输入done的时候会直接触发类型转换错误。我来一步步给你捋清楚怎么实现:

核心思路

  1. 用无限循环持续获取用户输入,直到输入done才退出循环
  2. 每次拿到输入后,先检查是不是终止指令(可以兼容大小写,比如接受Done、DONE这类输入)
  3. 如果不是终止指令,再尝试把输入转换成数字;转换失败的话,提示用户输入有效内容
  4. 成功转换后,更新总和、计数,最后计算平均值输出

完整实现代码

total = 0
count = 0

while True:
    user_input = input("请输入一个数字(输入'done'结束):").strip().lower()
    # 优先判断是否是终止指令
    if user_input == 'done':
        break
    # 尝试将输入转换为数字
    try:
        num = float(user_input)
        total += num
        count += 1
    except ValueError:
        print("无效输入,请输入数字或者'done'!")
        continue

# 处理无数字输入的边界情况
if count > 0:
    average = total / count
    print(f"总和:{total},计数:{count},平均值:{average}")
else:
    print("你没有输入任何数字!")

关键细节解释

  • 先检查done:我们把输入转成小写并去掉首尾空格,这样不管用户输Done还是 done 都能正确识别终止指令,避免输入格式问题导致判断失效。
  • 异常处理:用try-except捕获ValueError,当用户输入非数字非done的内容(比如abc)时,程序不会崩溃,而是给出友好提示并继续循环。
  • 边界情况处理:如果用户直接输入done而没有输入任何数字,我们先判断计数是否大于0再计算平均值,避免出现除以0的错误。

这样就能完美解决你的问题啦——既可以正确识别终止指令,又能妥善处理数字输入和无效输入的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:33:57