2011-11-14 20 views
14

Estoy usando python 3.2.2 en Windows 7 y estoy tratando de crear un programa que acepte 7 números y luego le dice al usuario cuántos son positivos, cuántos son negativos y cuantos son cero esto es lo que tengo hasta ahora:TypeError: objeto 'float' no iterable

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) 

Pero cuando corro el código me sale

TypeError: 'float' object is not iterable 

Si sustituyo flotador en la línea 3 con int consigo el mismo problema, excepto que dice que la El objeto 'int' no es iterable. También intenté cambiar el valor del conteo de 7 a 7.0

Ahora tomé este desafío de un libro tutorial de python y no tienen la respuesta, y por lo que puedo decir, he hecho todo dentro de la sintaxis que presentar.

The tutorial is here (PDF)

+1

'de i en count' no está en el tutorial que ha adjuntado. – cwallenpoole

+1

Por favor, haga 'print (...)' en vez de 'print (...)'. En Python 3 'print' es una función, entonces trátela como cualquier otra función en cómo la formateas. (PEP 8 también le gustaría que cambie 'a = b' y' a + = b' a 'a = b' y' a + = b'.) –

+2

También debe inicializar las tres variables que está tratando de print: es decir, poner 'cero = positivo = negativo = 0' antes del ciclo. – ekhumoro

Respuesta

20

for i in count: significa for i in 7:, que no va a funcionar. El bit después de in debe ser de un tipo iterable, no de un número. Prueba esto:

for i in range(count): 
+0

no puedo creer que me perdí eso, gracias – hamsolo474

3

uso

range(count)

int y float no son iterables

Cuestiones relacionadas