我是初学者,我想在字符串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: '.'
如何添加这三位小数?
答案 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