繁体   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