[英]Trouble in multiplying list of numbers converted from string to float in a loop (Python)
在這里,我試圖將存儲在列表中但以字符串類型存儲的數字相乘,顯示此錯誤
TypeError:不能將序列乘以“float”類型的非整數
我的列表數據示例
[5, 'BTCUSD', '賣出', '9125.5', 6055, '0.66352527', '限價', '成交']
def calc():
num=0.0
den=0.0
for ids in listBox.selection():
num=num+(float(listBox.item(ids)['values'][3]*float(listBox.item(ids)['values'][4]))) #Problem occurng here
den=den+float((listBox.item(ids)['values'][4]))
print(listBox.item(ids)['values'])
print(num/den)
return 0
我可能需要有關listBox
的更多信息,
但是當我大致看到給定的代碼時,我認為導致錯誤的行應該編輯如下:
# Original Code:
# num=num+(float(listBox.item(ids)['values'][3]*float(listBox.item(ids)['values'][4])))
num=num+(float(listBox.item(ids)['values'][3])*float(listBox.item(ids)['values'][4]))
TypeError:不能將序列乘以“float”類型的非整數
當您嘗試將序列(列表、字符串等)與浮點值相乘時,就會發生這種情況,例如:
a = 'hello'
print(a * 3.0) # error
允許將序列乘以 integer 值,它的作用是重復序列 n 次:
a = 'hello'
print(a * 3) # 'hellohellohello'
在您的代碼中,您沒有正確完成第一個 float() function。 第二個 float() function 做得很好,所以您只是想將一個字符串(尚未轉換)與一個浮點值(轉換得很好)相乘。 請仔細檢查代碼中的括號。 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.