Python - TypeError: 'int' object is not iterable Python - TypeError: 'int' object is not iterable python python

Python - TypeError: 'int' object is not iterable


Your problem is with this line:

number4 = list(cow[n])

It tries to take cow[n], which returns an integer, and make it a list. This doesn't work, as demonstrated below:

>>> a = 1>>> list(a)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'int' object is not iterable>>>

Perhaps you meant to put cow[n] inside a list:

number4 = [cow[n]]

See a demonstration below:

>>> a = 1>>> [a][1]>>>

Also, I wanted to address two things:

  1. Your while-statement is missing a : at the end.
  2. It is considered very dangerous to use input like that, since it evaluates its input as real Python code. It would be better here to use raw_input and then convert the input to an integer with int.

To split up the digits and then add them like you want, I would first make the number a string. Then, since strings are iterable, you can use sum:

>>> a = 137>>> a = str(a)>>> # This way is more common and preferred>>> sum(int(x) for x in a)11>>> # But this also works>>> sum(map(int, a))11>>>


This is very simple you are trying to convert an integer to a list object !!! of course it will fail and it should ...

To demonstrate/prove this to you by using the example you provided ...just use type function for each case as below and the results will speak for itself !

>>> type(cow)<class 'range'>>>> >>> type(cow[0])<class 'int'>>>> >>> type(0)<class 'int'>>>> >>> >>> list(0)Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'int' object is not iterable>>> 


If the case is:

n=int(input())

Instead of -> for i in n: -> gives error- int object is not iterable

Use -> for i in range(0,n):works fine..!