该代码的建议是使用几个函数来查找由用户输入生成的列表的静态信息。
def getNum():
nums = []
iNumStr = input("please input the number(use enter to exist): ")
while iNumStr != "":
nums.append(eval(iNumStr))
iNumStr = input("please input the number(use enter to exist): ")
print(type(nums))
return nums
def mean(numbers):
s = 0.0
for num in numbers:
s = s + num
return s / len(numbers)
def dev(numbers, mean):
sdev = 0.0
for num in numbers:
sdev = sdev + (num - mean) ** 2
return pow(sdev / (len(numbers) - 1), 0.5)
def median(numbers):
sorted(numbers)
size = len(numbers)
if size % 2 == 0:
med = (numbers[size//2-1]+numbers[size//2])/2
else:
med = numbers[size//2]
return med
n = getNum()
m = mean(n)
print("ave{},dev{:.2},med{}.".format(m,dev(n,m),median(n)))
问题是它告诉我
in mean
s = s + num
TypeError: unsupported operand type(s) for +: 'float' and 'tuple'
同样,其他功能块也存在相同的问题。
最佳答案
eval 函数将传递的参数评估为python表达式。可能您正在像这样输入“4,4”,“4,5”等浮点数。eval()像元组那样对其进行求值。实际上,它会将元组附加到您的列表中。而不是用逗号键入浮点数,而用点“4.5”,“4.6”键入它们。
关于python - 如何解决TypeError : unsupported operand type(s) for +: 'float' and 'tuple' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60471238/