我的代码
final = replace.split()
for word in final:
if word >= "0":
if word <= "9":
add = (word.split())
floats = [float(x) for x in add]
print(floats)
它给了我
[3236.789]
[4.3]
[6.7]
[5.2]
当我使用print(sum(floats))
时,它给了我相同的东西,没有括号。
3236.789
4.3
6.7
5.2
我做错了什么?我如何得到这些数字的总数?
答案 0 :(得分:2)
每个都是列表中的单个值。在循环外部创建一个空列表并附加到它可能更有意义。从你的输出来看,我认为你的列表理解是不必要的。尝试这样的事情:
nums = []
for word in replace.split():
# Do the checks if you must
nums.extend(float(word))
print(sum(nums))
这可能非常简单,但在代码逻辑中添加一些打印语句可能会有所帮助。在print(word)
循环后尝试for
,看看您的数据是否处于您期望的状态。我这样说是因为从您的代码和输出来看,似乎发生了一些不必要的操作。
此外,floats
是变量的错误名称;它与你也使用的内置float
太相似了。 replace
也是如此,因为它是一个字符串方法。