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
inputlike that, since it evaluates its input as real Python code. It would be better here to useraw_inputand 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 >>>