尝试求数字的各位和时,int对象不可迭代?

27 投票
11 回答
255022 浏览
提问于 2025-04-15 17:14

我有这段代码:

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,依此类推。

撰写回答