求助:编写循环输入数字至-1时计算平均值的程序遇问题
问题分析与修正
你的代码存在几个关键问题,导致无法实现预期功能:
- 仅执行了一次
input()获取输入,没有实现循环多次接收输入的逻辑 - 错误地用
for i in adad遍历输入字符串的单个字符,这和你需要的"多次输入数字"需求完全不符 while i != -1的判断逻辑错误:i是字符串类型,和整数-1永远不相等,会导致无限循环- 没有在每次循环后重新获取新的输入值
修正后的代码
count = 0 total = 0 # 避免用sum作为变量名,sum是Python内置函数 while True: num_input = input("请输入一个数字(输入-1结束):") # 转换为整数,加入异常处理防止非数字输入导致崩溃 try: num = int(num_input) except ValueError: print("请输入有效的数字!") continue if num == -1: break # 输入-1,退出循环 total += num count += 1 # 计算平均值,处理无有效输入的情况(比如直接输入-1) if count > 0: average = total / count print(f"所有输入数字的平均值为:{average}") else: print("没有输入任何有效数字,无法计算平均值")
关键逻辑说明
- 用
while True创建无限循环,直到遇到break语句才退出 - 每次循环重新获取输入,并转换为整数,异常处理确保程序不会因非数字输入崩溃
- 当输入值为
-1时,执行break跳出循环,结束输入流程 total变量累加所有有效输入的数字,count变量记录有效输入的次数- 最后判断
count是否大于0,避免出现除以0的错误,再计算并输出平均值
内容的提问来源于stack exchange,提问作者Pantea
相关产品推荐
相关产品推荐

