如何使用Python接收多个数字并计算显示其平均值?
问题分析与代码修正
原代码的错误点:
- 直接把用户输入的逗号分隔字符串转为
int,会触发类型错误,因为输入不是单个整数 - 整数类型没有
len()方法,调用n.len()会报错 split(",")得到的是字符串列表,需要转为整数才能参与数值计算range(a)用法错误,range()需要整数参数,应该直接遍历列表元素- 使用了Python内置函数
sum作为变量名,容易引发冲突 - 平均值计算时,应该除以输入数字的个数,而非错误转换的
n
修正后的代码:
# 接收逗号分隔的输入字符串 input_str = input("请输入用逗号分隔的多个数字: ") # 分割字符串并转为整数列表(处理可能的空格) num_list = [int(num.strip()) for num in input_str.split(",")] # 计算总和与平均值 total = sum(num_list) average = total / len(num_list) # 输出结果 print(f"平均值为: {average}")
代码说明:
- 先保留原始输入字符串,不直接做类型转换
- 用列表推导式完成字符串分割、去空格、转整数的操作,兼容带空格的输入(比如
"1, 2, 3") - 调用Python内置
sum()函数直接计算列表总和,代码更简洁高效 - 用
len(num_list)获取有效数字的数量,确保平均值计算准确
内容的提问来源于stack exchange,提问作者Rahul Parihar
相关产品推荐
相关产品推荐

