Python求三个数平均值异常:为何得到41.0及解决方法
问题分析与解决
嘿,我来帮你揪出问题根源,顺便给你搞定解决方案~
为什么会得到41.0?
你输入的三个数字(比如假设是1、2、3),通过input().split()得到的是字符串类型的变量,比如Number_One是"1",Number_Two是"2",Number_Three是"3"。
而Python里字符串的+号是拼接操作,不是数值相加。所以Number_One + Number_Two + Number_Three会变成字符串"123",转成整数后是123,除以3自然就得到41.0啦!
怎么解决?
核心思路是:先把输入的字符串转换成数值类型(整数int或浮点数float),再进行加法运算。这里给你两种写法:
写法1:逐个转换变量
Number_One, Number_Two, Number_Three = input("Enter Three Numbers").split() # 将每个字符串转成整数(如果需要支持小数,把int换成float) num1 = int(Number_One) num2 = int(Number_Two) num3 = int(Number_Three) Average_Number = (num1 + num2 + num3) / 3 print(f"The average of all the numbers is {Average_Number}")
写法2:更简洁的批量转换
用map函数批量转换输入的字符串,再求和计算平均值,适合扩展到更多数字的情况:
# 把输入的字符串转成整数列表(支持小数就换float) nums = list(map(int, input("Enter Three Numbers").split())) Average_Number = sum(nums) / len(nums) print(f"The average of all the numbers is {Average_Number}")
这样修改后,输入1、2、3的话,就会得到正确的平均值2.0啦~
内容的提问来源于stack exchange,提问作者Vipultiwari990
相关产品推荐
相关产品推荐

