for i in range(2):
for j in range(2):
print(i, j, end='')
嘿家伙,所以我只是有问题,理解这个嵌套循环的概念。 运行程序时的输出是:0 00 11 01 1嵌套循环输出混淆
我不知道为什么输出是这样。任何人都可以一步一步解释执行这个命令的顺序吗?
由于
for i in range(2):
for j in range(2):
print(i, j, end='')
嘿家伙,所以我只是有问题,理解这个嵌套循环的概念。 运行程序时的输出是:0 00 11 01 1嵌套循环输出混淆
我不知道为什么输出是这样。任何人都可以一步一步解释执行这个命令的顺序吗?
由于
你有两个循环的程序。一个是外部的,另一个是内部循环。 所以这就是代码的工作方式。所有下面的代码 首先被执行
for i in range(2):
这使值0在我。 现在它进入内部循环。因此,执行以下代码
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):
和i值将成为1
现在内循环将再次运行。
for j in range(2):
这将再次集合的J值为0,并在接下来的迭代1.
所以最终的输出看起来像
0 00 11 01 1
I = 0和j = 0
它将打印0 0,这里端是 '',意味着没有空间
现在I = 0和j = 1
它将打印0 00 1
现在I = 1 J = 0
它将打印0 00 11 0
现在我= 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):
for j in range(2):
print(i, j, sep='', end=' ')
00 01 10 11
这实际上清理得很好。但是我仍然有一个试图理解为什么第二次运行它的问题1 1 |而不是| 0 1 | – jjyj
从“i”循环开始,i是0,然后我们做什么在“i”循环内,这是j循环,j从0开始,并且我们在j循环中做什么是打印,现在我们执行j循环的下一步(j为1)和打印。现在j循环完成了,所以退出到i循环,我是1,现在我们做j循环..等 –
也许它有助于将每个循环的身体想象成一个黑盒子,所以外面循环说我要在黑盒子里做两次(一次是i = 0,一次是i = 1),每次黑盒子都会完成任何事情。 –