我是Python新手并尝试在阅读文本文件的内容时解决任务,但收到消息:''' float'对象不可迭代'当试图对变量' sppos'中的所有输出求和时。所有输出都是大于0的数字0.xxxx 还试图在不使用sum函数的情况下获得所有值的总和。 是否可以使用其他功能?
fname=input('Enter a file name:')
fhand=open(fname)
count=0
for line in fhand:
line=line.rstrip()
if not line.startswith("X-DSPAM-Confidence:") : continue
count=count+1
atpos=line.find(':')
sppos=line[atpos+1:]
sppos=float(sppos)
print(count,sum(sppos))
由于
答案 0 :(得分:0)
这样做
sum方法需要一个iterable作为第一个参数,就像一个列表。
print(count,sum([sppos]))
如果你想在没有sum方法的情况下获得总数,只需在循环外定义一个变量并为其添加词条。
fname=input('Enter a file name:')
fhand=open(fname)
count=0
total=0
for line in fhand:
line=line.rstrip()
if not line.startswith("X-DSPAM-Confidence:") : continue
count=count+1
atpos=line.find(':')
sppos=line[atpos+1:]
sppos=float(sppos)
total+=spoos
print(count,total)