如何在 运行 for 循环两次后打印 i ?

How to print i after running for loop twice?

我试图在每次内部循环完成迭代时打印出 i 的值。
i 可以是 10202002000 或任何数字,但对于本例,我选择了 100

for i in range(1, 3):
    for ii in range(1, 100):
        i += 1
    print(i)
print(i + i)

给定输出:

100
101

想要的输出:

100
200

如何获得想要的输出?

您的外部循环变量 命名为i。由于您正在重载该变量名称,因此每次都会重置它。

考虑改用常见的习语 for _ in range(n),它将执行其内容 n 次。

x = 0
for _ in range(3):
    for _ in range(100):
        x += 1
    print(x)

尽管正如 solid.py 在对该问题的评论中正确指出的那样,对于这个特定的用例,不一遍又一遍地加 1 可能更容易,而只是使用数学或更合适的范围。

for i in range(1, 3):
    print(i * 100)

# or

for i in range(100, 301, 100):
    print(i)

首先,内部循环不需要增加一个常数值。这与上面的代码相同,但更清晰:

for i in range(1,3):
    i += 100
    print(i)
print(i+i)

这将打印

101
102
103

要获得输出,请尝试使用辅助变量:

x = 0
for _ in range(1, 3):
    x += 100
    print(x)

这将获得您想要的输出

下面的代码通过使用 * 运算符解压缩 range() 中的所有值来工作。
旁注: range() 函数有一个步骤参数,指定增量。

print(*range(100, 300, 100))

上面代码的简单版本是:

for i in range(100, 300, 100):
    print(i)

输出:

100 200