2015-06-06 91 views
-2

我在運行下面的代碼時在標題中出現錯誤。TypeError:不支持的操作數類型爲*:'dict'和'int'

amount = int(input('How many packs do you want?')) 

pack = {'nuts':4.0, 
     'bolts':300.0, 
     'screws':140.0, 
     'wire(m)':3.5} 

for key,val in pack.items(): 
    total = pack * amount 
    print(total,key) 

我假設這是因爲字典中的值不是整數。我如何修復我的代碼,所以它不會給我這個錯誤。

它應該打印的人將接收的事物的數量,例如,如果有人有序2包它將打印:

8.0螺母 600.0螺栓 280.0螺釘 7.0線(M)

+0

什麼應該乘以一個整數字典產生? –

+0

它會顯示該人將收到的東西的數量,例如,如果某人訂購了2包,他們將獲得600個螺栓。穆指出了這個問題。我將編輯。 –

回答

2

您正在計算total錯誤,您需要將其與val相乘,而不是使用pack(這是一個字典)。使用(的​​代替total = pack * amount)以下代替:

for key,val in pack.items(): 
    total = val * amount 
    print(total,key) 

因此,沒有,其原因不在於在字典中的值不是整數。

1

這是因爲類型(包)是<class 'dict'>和類型(金額)是<class 'int'>

'dict'類中沒有可以用整數類型進行乘法運算的方法。

所以正如mu提到的,你應該乘以val。

相關問題