如何在Python中计算输入数字的平均值?代码报错求助
问题分析与解决
原代码的错误点:
- 直接将空格分隔的输入字符串转为整数:
int(input(...))无法处理包含空格的字符串,这是报错的核心原因,int()只能转换单个纯数字字符串。 - 变量名不匹配:定义了变量
numbers,但计算均值时调用了未定义的grades。 - 语法错误:
input()语句缺少闭合的右括号)。
修正后的代码:
from statistics import mean # 获取输入并处理成整数列表 input_content = input("Enter some numbers. Separate each number by a space: ") # 分割字符串、过滤空值、转换为整数 number_list = [int(num.strip()) for num in input_content.split() if num.strip()] average = mean(number_list) print(average)
代码说明:
input_content.split():将输入的字符串按空格分割为字符串列表,自动处理多个连续空格、开头/结尾空格的情况。- 列表推导式:遍历分割后的每个字符串,用
strip()清除首尾空白,if num.strip()过滤分割后产生的空字符串,再转为整数类型。 - 调用
mean()计算均值时,使用正确的变量名number_list。
扩展(支持浮点数输入):
如果需要接收小数输入,只需将int改为float:
number_list = [float(num.strip()) for num in input_content.split() if num.strip()]
内容的提问来源于stack exchange,提问作者venus
相关产品推荐
相关产品推荐

