sum函数的替代

时间:2018-02-28 05:24:25

标签: python-3.x function sum

我是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))

由于

1 个答案:

答案 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)