我试图找到列表中所有数字的总和,但每次我尝试时都会收到一个错误,它无法将字符串转换为浮点数。这是我到目前为止所拥有的。
loop = True
float('elec_used')
while (loop):
totalelec = sum('elec_used')
print (totalelec)
loop = False
答案 0 :(得分:1)
您不需要上面的任何代码。 while循环是不必要的,看起来它只是在一次迭代中退出循环,即它未正确使用。如果你只是简单地总结列表中的所有值:
sum([float(i) for i in elec_used])
如果这会产生错误,请发布您的elec_used列表。它可能包含字符串值或空格。
答案 1 :(得分:0)
'elec_used'
属于string
个字符。您无法将字符转换为float
。我不确定你为什么认为你能做到这一点。但是,您可以通过类型转换将数字字符串转换为float。例如:
>>> number_string = '123.5'
>>> float(number_string)
123.5
现在来到你的第二部分,计算数字之和。假设你有多个数字的字符串。首先.split()
列表,将每个项目输入到float
,然后计算sum()
。例如:
>>> number_string = '123.5 345.7 789.4'
>>> splitted_num_string = number_string.split()
>>> number_list = [float(num) for num in splitted_num_string]
>>> sum(number_list)
1258.6
可以使用 list comprehension 编写一行代码:
>>> sum(float(item) for item in number_string.split())
1258.6
或者,使用map()
作为:
>>> sum(map(float, number_string.split()))
1258.6