嵌套循环输出混乱

时间:2016-02-10 06:02:11

标签: python loops nested nested-loops

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

嘿伙计,所以我只是在理解这个嵌套循环的概念时遇到了问题。 运行程序时的输出为:0 00 11 01 1

我无法弄清楚为什么输出是这样的。有人能给我一步一步解释执行此命令的顺序吗?

谢谢

4 个答案:

答案 0 :(得分:0)

i = 0且j = 0

它将打印0 0,此处结束为'',表示没有空格

现在i = 0且j = 1

它将打印0 00 1

现在i = 1 j = 0

它将打印0 00 11 0

现在i = 1且j = 1

它将打印0 00 11 01 1

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

for i in range(2):

这将值i设为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而我仍然是0 所以输出看起来像

0 00 1

(注意:前0 0是前一个输出)

现在完成以下代码

for j in range(2):

它以j的值1结束,因为范围(2)表示值将从0开始到1。

现在将执行以下代码。

for i in range(2):

,我的值将变为1。

现在内循环将再次运行。

for j in range(2):

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

所以最终输出看起来像

0 00 11 01 1

答案 3 :(得分:0)

修改您的代码,如下所示,它将消除混淆:

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


00 01 10 11