gpt4 book ai didi

Python:浮点对象不可迭代

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:28 25 4
gpt4 key购买 nike

我编写了下面的代码来完成作业:

fname = raw_input("Enter file name: ")
fh = open(fname)
total = 0
count = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
pos = line.find(':')
num = float(line[pos+1:])
for number in num:
total = total +num
count += 1
print 'Average spam confidence:', total/count

系统不断出现错误消息读取

float object is not iterable

我知道我在 for number in num: 中犯了一个错误正确答案是:

fname = raw_input("Enter file name: ")
fh = open(fname)
total = 0
count = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
pos = line.find(':')
num = float(line[pos+1:])
total = total +num
count += 1
print 'Average spam confidence:', total/count

但我的问题是:在正确答案中, float 对象也是可迭代的吗?感谢您的帮助!!

最佳答案

作为Python glossary请注意,如果一个对象“能够一次返回一个成员”,那么该对象就是可迭代的。 num 是一个 float ,它只是一个数字,它不能像列表、集合或字典那样一次返回一个元素。因此,编写 for number in num: 是没有意义的 - 为了使其工作,num 应该是一个可迭代的,这样它就可以一次返回一个成员作为数字。相反,您应该通过调用 total = Total + num 直接将 num 添加到 total 中(或者更好的是,total + = 数字)

关于Python:浮点对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40209966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com