bailean 发表于 2020-3-23 09:51:57

关于while

i = 10
while i:
    print('我爱鱼C!')
    i = i - 1


这些代码,后面为什么还要有个i = i - 1,才能打印10次,刚才我把i = i - 1去掉啦,结果又成死循环了,请教下这是怎么一回事

heidern0612 发表于 2020-3-23 09:53:11

你i不减等于1的话,i就一直等于10.while就永远跳不出循环,会一直循环到天荒地老。

wp231957 发表于 2020-3-23 09:53:49

while i:把这句改一下呢 while i>0:

qiuyouzhi 发表于 2020-3-23 09:53:53

因为while i 就是while i != 0(只要i不为False,0是False)
这里不动i,i就一直不等于0,当然会死循环

wuqramy 发表于 2020-3-23 09:55:32

本帖最后由 wuqramy 于 2020-3-23 09:57 编辑

i是这个while循环的控制器,在循环前面把i设置为10
然后每次循环-1,只要i==0就会停止循环
while i这句代码就是判断i是不是0,还可以这么写:while i > 0
如果没有这个i控制器,那这个循环就成了死循环

darrenkwan 发表于 2020-3-23 09:56:55

简单理解 ,i = i - 1 是每循环一次减1. 当i=0时, 0=False, 循环停止
如果缺少<i=i-1>, 则 while 的条件永远为真, 所以会死循环.

bailean 发表于 2020-3-23 10:04:11

wuqramy 发表于 2020-3-23 09:55
i是这个while循环的控制器,在循环前面把i设置为10
然后每次循环-1,只要i==0就会停止循环
while i这句代 ...

感谢感谢,我懂啦

bailean 发表于 2020-3-23 10:05:12

darrenkwan 发表于 2020-3-23 09:56
简单理解 ,i = i - 1 是每循环一次减1. 当i=0时, 0=False, 循环停止
如果缺少, 则 while 的条件永远为真,...

谢谢指教,我明白啦

bailean 发表于 2020-3-23 10:06:25

qiuyouzhi 发表于 2020-3-23 09:53
因为while i 就是while i != 0(只要i不为False,0是False)
这里不动i,i就一直不等于0,当然会死循环

谢谢,明白啦

乘号 发表于 2020-3-23 10:29:34

qiuyouzhi 发表于 2020-3-23 09:53
因为while i 就是while i != 0(只要i不为False,0是False)
这里不动i,i就一直不等于0,当然会死循环

你不是成实习版主了吗,为啥我这边看还是闪闪发亮的VIP

qiuyouzhi 发表于 2020-3-23 10:40:45

乘号 发表于 2020-3-23 10:29
你不是成实习版主了吗,为啥我这边看还是闪闪发亮的VIP

我可以改

乘号 发表于 2020-3-23 10:41:48

qiuyouzhi 发表于 2020-3-23 10:40
我可以改

好吧……

rocktang 发表于 2020-3-23 21:59:58

学习
页: [1]
查看完整版本: 关于while