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

Python while循环实现输入数平均值:代码开发疑问求助

问题分析与解决方案

你的代码存在几个核心问题:

  • 变量初始化错误:answer同时赋值整数、空列表和0,语法完全错误,且后续把answer既当整数(判断是否为-1)又当列表(存储输入),导致逻辑混乱
  • 循环逻辑错误:每次循环都重置answer为空列表,还往里面append自身,完全无法正确存储输入的数字
  • 字符串拼接错误:sum(answer)是整数,不能直接和字符串相加,需要转成字符串
  • 提前判断answer==-1的位置不对,会导致最后一次输入的-1被错误处理,且此时answer是整数,调用sum(answer)会报错

正确实现代码

# 初始化存储数字的列表
numbers = []
# 循环接收输入
while True:
    try:
        num = int(input("请输入一个数字(输入-1停止):"))
        if num == -1:
            break
        numbers.append(num)
    except ValueError:
        print("请输入有效的整数!")

# 计算并输出平均值
if numbers:
    average = sum(numbers) / len(numbers)
    print(f"所有输入数字的平均值为:{average:.2f}")
else:
    print("你没有输入任何有效数字!")

代码说明

  • 用while True创建无限循环,直到遇到break跳出
  • 用try-except处理用户输入非整数的情况,避免程序崩溃
  • 单独用numbers列表存储所有有效输入(排除-1),避免变量混淆
  • 最后判断列表是否为空,避免除以0的错误,用格式化字符串输出平均值,保留两位小数更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:15:35