2011-11-14 8 views
14

私はWindows 7でPython 3.2.2を使用しています。私は7つの数字を受け取り、どのくらいの数の陽性なのか、いくつの陰性であるのかをユーザーに伝えます何個がゼロであるか。これは私がこれまで持っているものです:TypeError: 'float'オブジェクトは反復不可

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) 

をしかし、私は、コードを実行したとき、私はint型と3行目にフロートを交換する場合、私はそれはと言う以外、私は同じ問題を取得し

TypeError: 'float' object is not iterable 

を取得'int'オブジェクトは反復可能ではありません。私もcountの値を7から7.0に変更しようとしました

今、私はPythonのチュートリアルの本から挑戦しましたが、回答がなく、私は構文内ですべてを行った提唱する。

The tutorial is here (PDF)

+1

反復可能ではありませんあなたが添付しましたチュートリアルではありません。 – cwallenpoole

+1

'print(...)ではなく' print(...) 'を実行してください。 Python 3では 'print'は関数なので、他の関数と同様に扱います。 (PEP 8では 'a = b'と' a + = b'を 'a = b'と' a + = b'に変更したいと思っています) –

+2

また、しようとしている3つの変数を初期化する必要がありますprint:つまり、ループの前に 'zero = positive = negative = 0'を入れます。 – ekhumoro

答えて

20

for i in count:動作しませんfor i in 7:を意味します。 inの後のビットは、数字ではなく繰り返し可能なタイプでなければなりません。これを試してみてください:

for i in range(count): 
+0

は、私は、あなたに感謝することを逃した信じることをやります – hamsolo474

3

使用

range(count)

int型とfloat型はcount`に私のために `

関連する問題