尝试求数字的各位和时,int对象不可迭代?
我有这段代码:
inp = int(input("Enter a number:"))
for i in inp:
n = n + i;
print (n)
但是它报错了:'int'对象不可迭代
我想通过把每个数字加起来来找出总和,比如110。1 + 1 + 0 = 2。我该怎么做呢?
11 个回答
7
尝试:
for i in str(inp):
这段代码会逐个查看字符串中的每个字符。一旦你得到了每个字符,就可以像对待单独的数字一样使用它们。
13
也许你想要做的是
for i in range(inp)
这段代码会把你输入的值(inp)打印多次。如果你只想打印一次,可以这样写:
for i in range(inp - inp + 1)
print(i)
我刚才遇到这个错误是因为我没有使用range()函数。
26
首先,去掉那个对 int
的调用——你现在是把一串字符转换成了一个整数,这不是你想要的(你是想把每个字符当成一个数字来看待)。把:
inp = int(input("Enter a number:"))
改成:
inp = input("Enter a number:")
现在 inp
是一串数字字符,你可以一个一个地循环处理它。
接下来,给 n
赋一个初始值——你现在的代码会出现 NameError
,因为你从来没有初始化它。大概你想在 for
循环之前把 n = 0
加上。
然后,再次考虑一下字符和整数之间的区别。你现在有:
n = n + i;
这个代码除了多余的分号(Python 是基于缩进的语法)之外,试图把字符 i 加到整数 n 上——这样是行不通的!所以,这个要改成
n = n + int(i)
这样才能把字符 '7'
转换成整数 7
,依此类推。