![](/img/trans.png)
[英]TypeError: unsupported operand type(s) for +: 'float' and 'tuple'
[英]How to solve TypeError: unsupported operand type(s) for +: 'float' and 'tuple'
這段代碼的提議是使用幾個函數來查找用戶輸入的列表的靜態信息。
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”鍵入它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.