這是一個相當奇怪/愚蠢的問題,所以如果有人作爲一個更好的標題名稱,請請求編輯。Python列表類型
我創建了一個函數,它返回列表中數字的乘積。 當測試該功能,我試圖列出,包括intergers和實數(浮點),如items = [1,2.0,3,4.0]
功能:
items = [1.0, 2, 3.0, 10, "a"]
def mult1(items):
total = 1
for i in items:
total = total * i
return total
print mult1(items)
該功能與上面的項目是[1.0,2,3.0的作品,10 ]並且該特定列表的輸出是60.0。
我已經學習了標準ML,通常只有一個特定類型的列表(我確定有代碼在那裏,以某種方式使我的聲明不相關),所以想了解如果我進入會發生什麼一個字符串作爲列表項,我做了,並得到一個錯誤(我期望得到一個錯誤,因爲你不能用一個數字乘以一個字符串)。
不過,我收到了錯誤混淆了我:
TypeError: can't multiply sequence by non-int of type 'float'
這個錯誤我感到困惑。我知道一個字符串不能相乘,但是這是否也意味着列表中的所有項目都被認爲是一個浮點數,儘管有些看起來像整數?
我認爲這個錯誤應該表明它不能計算一個不是浮點數或不是整數的類型,但是對於我來說(可能是錯誤的),它似乎意味着它不能將列表乘以一個類型是不是一個整數,也不是類型浮動?
對我來說,這聽起來像每個元素有兩種類型,整數和浮點數。
你可以顯示你寫的代碼產生這個錯誤嗎? – chown
向我們展示功能正常功能可以正常工作 – pythad
我將爲我的功能添加代碼 –