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

求助:编写循环输入数字至-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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:29:52