如何实现带输入校验的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
相关产品推荐
相关产品推荐

