类型错误:'float'对象不可迭代。

28

我正在使用 Windows 7 上的 Python 3.2.2,尝试创建一个接受 7 个数字并告诉用户有多少个是正数、负数和零的程序。以下是我目前的代码:

count=7
for i in count:
    num = float(input("Type a number, any number:"))
    if num == 0:
        zero+=1
    elif num > 0:
        positive+=1
    elif num < 0:
        negative+=1

print (positive)
print (negative)
print (zero)

但是当我运行代码时,我得到了以下结果。
TypeError: 'float' object is not iterable

如果我在第3行将float替换为int,我会得到相同的问题,只是它会说'int'对象不可迭代。我也尝试将count的值从7更改为7.0。
现在,我从一本Python教程书中接受了这个挑战,他们没有答案,而且据我所知,我已经按照他们提出的语法做了一切。 该教程在此(PDF)

1
你附加的教程中没有包含 for i in count 这个内容。 - cwallenpoole
2
请使用 print(...) 而不是 print (...)。在 Python 3 中,print 是一个函数,因此在格式化时请像处理其他函数一样对待它。(PEP 8 还希望您将 a=ba+=b 更改为 a = ba += b)。 - Chris Morgan
2
你还需要初始化三个要打印的变量:即在循环之前放置 zero = positive = negative = 0 - ekhumoro
@cwallenpoole 我可能没有正确表达我的问题,我正在尝试完成第3.3节中的第13个问题(在该pdf文件的第35页),我认为我已经使用了正确的语法(我从该pdf文件的其他页面学到了),但正如Chris Morgan指出的那样,我缺少了range函数。ChrisMorgan 我将立即开始删除空格,再次感谢您的帮助ekhumoro 谢谢,我现在会这样做 - hamsolo474 - Reinstate Monica
2个回答

37

for i in count:的意思是for i in 7:,但这种方式行不通。在in后面的部分应该是可迭代的类型,而不是一个数字。尝试使用以下代码:

for i in range(count):

7
我们得到了一个 TypeError: 'float' object cannot be interpreted as an integer 错误。 - Max Kleiner

4

使用

range(count)

int 和 float 不可迭代


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接