嵌套循环输出混乱

Nested loop output confusion

for i in range(2):
    for j in range(2):
        print(i, j, end='')

大家好,我只是在理解嵌套循环的概念时遇到了问题。 我运行程序的输出是:0 00 11 01 1

我不明白为什么输出是这样的。谁能给我一步一步解释执行顺序?

谢谢

i = 0 且 j = 0

会打印0 0,这里结尾是'',表示没有space

现在 i = 0 且 j=1

它将打印 0 00 1

现在 i=1 j=0

它将打印 0 00 11 0

现在 i=1 且 j=1

它将打印 0 00 11 01 1

对您的输出进行这种轻微的重新格式化是否有帮助:

0 00 11 01 1   ==>  0 0 | 0 1 | 1 0 | 1 1
                    i j   i j   i j   i j

您的程序中有两个循环。一个是外循环,另一个是内循环。 这就是代码的工作方式。 首先执行以下代码

for i in range(2):

这会将值 0 放入 i。 现在它进入内循环。所以执行了下面的代码

for j in range(2):

这会将值 0 放入 j。 现在执行下面的代码

print(i,j,end='')

这给出了输出,因为 i 和 j 的值都是 0。

0 0

在编程语言中,内循环先完成。 所以下面的代码会再次执行

for j in range(2):

这会将 j 的值设置为 1

现在j是1而i还是0 所以输出看起来像

0 00 1

(注:第一个0 0是前面的输出)

至此以下代码完成

for j in range(2):

它在 j 的值 1 处结束,因为范围 (2) 意味着值将从 0 到 1 开始。

现在将执行以下代码。

for i in range(2):

i值变为1

现在内部循环将再次 运行。

for j in range(2):

这将再次将 j 的值设置为 0,并在下一次迭代中设置为 1。

所以最终输出看起来像

0 00 11 01 1

修改你的代码如下,它会消除混乱:

>>> for i in range(2):
    for j in range(2):
        print(i, j, sep='', end=' ')


00 01 10 11