无法将字符串转换为float(python)

时间:2016-10-20 15:29:21

标签: python

我试图找到列表中所有数字的总和,但每次我尝试时都会收到一个错误,它无法将字符串转换为浮点数。这是我到目前为止所拥有的。

loop = True
float('elec_used')
while (loop):
    totalelec = sum('elec_used')
    print (totalelec)
    loop = False

2 个答案:

答案 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