【发布时间】:2011-12-28 12:48:25
【问题描述】:
我在 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 教程书中接受了这个挑战,但他们没有答案,据我所知,我已经按照他们提出的语法完成了所有工作。
【问题讨论】:
-
for i in count不在您附加的教程中。 -
请使用
print(...)而不是print (...)。在 Python 3 中,print是一个函数,因此在格式化它时将其与任何其他函数一样对待。 (PEP 8 还希望您将a=b和a+=b更改为a = b和a += b。) -
您还需要初始化您尝试打印的三个变量:即将
zero = positive = negative = 0放在循环之前。 -
@cwallenpoole 我可能没有正确表达我的问题,我试图完成第 3.3 节中的问题 13(该 pdf 中的第 35 页),我认为我使用了正确的语法(我从中学到了该 pdf 上的其他页面)但正如 Chris Morgan 指出的那样,我缺少范围函数 ChrisMorgan 我将立即开始删除空格,再次感谢您的帮助 ekhumoro 谢谢我现在就这样做
标签: python for-loop floating-point python-3.x