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:
- Your while-statement is missing a
:
at the end. - 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 useraw_input
and then convert the input to an integer withint
.
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 >>>