代码如下:
.then
此代码的输出是:
i = 1
while i < 6:
print(i)
i += 1
当我更改语句顺序时:
0
1
2
3
4
5
现在输出不同
i = 0
while i < 6:
i += 1
print(i)
在第一个中,包括0,但不包括6;在第二个中,排除0,但包括6。是什么原因?
答案 0 :(得分:0)
在第二个中排除0,因为您在打印i之前先增加了它的值。 同样,case2中包含6,因为当i = 5时,在循环内,在打印i的值之前将其递增到6
答案 1 :(得分:0)
在Python中,就像在大多数语言中一样,执行会逐行向下移动到程序中。在这种情况下,while
循环会导致执行从循环结束处循环返回到i < 6
的顶部,但执行仍会在循环中从上到下进行。
然后,在第一种情况下,while
循环会执行以下操作:
while i < 6:
increment the value of i
print out the current value of i
此循环的第一次迭代以i=0
开始,但是在打印之前{strong> 递增,因此打印的第一个值是i
。 / p>
此循环的最后一次迭代以1
开始(因为如果i=5
循环未运行),但是如上所述,i=6
在打印之前就增加了,因此最后一个值打印为i
。
第二种情况,6
循环会做:
while
因此,在第一次迭代中,while i < 6:
print out the current value of i
increment the value of i
从i
开始,然后打印(打印0
),然后将0
递增到{{1} }。
在上一次迭代中,i
(由于与上述相同的原因-如果在迭代1
的开始时,迭代将不运行)。打印i=5
(打印i=6
),然后递增i
。 5
现在为6,因此循环不会再次运行。
最重要的是,在i
循环中,循环的运行条件在每次迭代中都要进行一次精确检查:即在迭代运行之前(或不进行)。因此,如果条件为真,则无论此期间条件检查的值发生什么,整个迭代都会继续进行。仅在当前迭代完成后才再次检查这些值(我们到达循环的底部,然后循环回到顶部)。
对于所有循环,情况并非如此;例如,do-while
loop在迭代运行后后检查其条件,因此i
循环将始终至少运行一次。