python3:如何添加字符串中的小数

时间:2017-10-26 16:17:08

标签: python string python-3.x decimal

我是初学者,我想在字符串s

中添加小数
 totalsum=0
 s='1.23 2.4 3.123'
 for a in s:
    totalsum=totalsum+float(a)
 print (totalsum)

但是当我试着说

ValueError: could not convert string to float: '.'

如何添加这三位小数?

4 个答案:

答案 0 :(得分:4)

您正在迭代字符串的每个字符。它起初有效(对于1 ...),但是当你到达.时,你会得到一个解析错误。

现在,您需要拆分字符串。并且是pythonic,在一行中做到这一点:

totalsum = sum(map(float,s.split()))

答案 1 :(得分:3)

您可以使用正则表达式:

import re
s='1.23 2.4 -4.3 3.123 56'
data = sum(map(float, re.findall('(-*\d+\.*\d+)|\b-*\d+\b', s)))

输出:

58.453

答案 2 :(得分:2)

你必须这样做,你试图将整个字符串添加到float。相反,你必须拆分并添加它们

   totalsum=0
    s='1.23 2.4 3.123'
    for a in s.split():
        totalsum=totalsum+float(a)
    print (totalsum)

答案 3 :(得分:2)

你需要拆分你的字符串。

totalsum=0
s='1.23 2.4 3.123'.split()
for a in s:
    totalsum =totalsum + float(a)
print (totalsum)

输出:

6.753