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

如何实现带输入校验的10个数求和与平均值计算功能?

解决输入非数字时程序崩溃并重新输入的问题

原代码存在两个核心问题:

  • 累加操作sum = Sum + num没有缩进,只会在循环结束后执行一次,最终总和仅包含最后一个输入的数字
  • 输入非整数内容时,int(input(...))会触发ValueError,导致程序直接崩溃

要实现输入无效时重新提示的需求,可以结合**try-except异常捕获和循环重试**的方式,同时修正缩进问题。修复后的代码如下:

total_sum = 0
print("Please Enter 10 Numbers\n")
for i in range(1, 11):
    while True:
        try:
            num = int(input(f"Number {i} = "))
            break  # 输入有效,跳出重试循环
        except ValueError:
            print("Invalid input. Try again")
    total_sum += num  # 累加有效输入的数字

average = total_sum / 10
print(f"\nTotal Sum: {total_sum}")
print(f"Average: {average}")

关键逻辑说明

  • 使用while True创建重试循环:在用户输入无效时,会一直停留在该循环内,直到输入有效的整数才通过break跳出
  • try-except ValueError:尝试将输入转换为整数,若转换失败(比如输入含字母),捕获ValueError并输出错误提示,然后重新进入输入流程
  • 修正缩进:将累加操作放到for循环内部,确保每个有效输入的数字都被累加到总和中
  • 变量名改为total_sum(避免和内置函数sum重名,是更规范的写法)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:54:23