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
相关产品推荐
相关产品推荐

