簡體   English   中英

在循環中將從字符串轉換為浮點數的數字列表相乘(Python)時遇到問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM