# int object is not iterable?

### Question

``````inp = int(input("Enter a number:"))

for i in inp:
n = n + i;
print (n)
``````

... throws an error: `'int' object is not iterable`

I wanted to find out the total by adding each digit, for eg, 110. 1 + 1 + 0 = 2. How do I do that?

Thanks

1
16
12/21/2009 5:14:22 AM

First, lose that call to `int` - you're converting a string of characters to an integer, which isn't what you want (you want to treat each character as its own number). Change:

``````inp = int(input("Enter a number:"))
``````

to:

``````inp = input("Enter a number:")
``````

Now that `inp` is a string of digits, you can loop over it, digit by digit.

Next, assign some initial value to `n` -- as you code stands right now, you'll get a `NameError` since you never initialize it. Presumably you want `n = 0` before the `for` loop.

Next, consider the difference between a character and an integer again. You now have:

``````n = n + i;
``````

which, besides the unnecessary semicolon (Python is an indentation-based syntax), is trying to sum the character i to the integer n -- that won't work! So, this becomes

``````n = n + int(i)
``````

to turn character `'7'` into integer `7`, and so forth.

20
11/21/2018 1:52:16 PM

try:

``````for i in str(inp):
``````

That will iterate over the characters in the string representation. Once you have each character you can use it like a separate number.