正在获取“ ValueError:无法将字符串转换为float:'。 “当输入应被接受为浮点数时

时间:2018-08-11 11:57:46

标签: python floating-point

我当前正在创建一个程序,该程序将用户的输入求和并以浮点数的形式返回。

当我尝试使用“ 20.1”之类的输入来运行下面的代码时,我收到ValueError:无法将字符串转换为float:'。'

不应该将20.1用作浮点值吗?

abc = []
i = 0
while True:
    i += 1
    item = input("Transaction " + str(i) + ": ")
    if item == '':
        break
    abc.extend(item)
abc = [float(k) for k in abc]
print(sum(abc[0:len(abc)]))

3 个答案:

答案 0 :(得分:2)

当您执行abc.extend('20.1')时,会得到['2', '0', '.', '1'],问题是您无法将.转换为浮点数,这是错误消息所提示的。您想改用abc.append(item)

这是因为通过可迭代对象扩展列表意味着将可迭代对象的每个元素附加到列表。字符串可迭代其字符。


对于它的价值,您也可以直接进行sum(abc),而无需做sum(abc[0:len(abc)])

答案 1 :(得分:0)

您应该使用附加而不是扩展。

abc = []
i = 0
while True:
    i += 1
    item = input("Transaction " + str(i) + ": ")
    if item == '':
        break
    abc.append(item)
abc = [float(k) for k in abc]
print(sum(abc[0:len(abc)]))

答案 2 :(得分:0)

有针对特定事物的特定输入。您想使用浮点输入

    float(input()) 

raw_input和input用于字符串

    int(input)

是整数