鱼C论坛

 找回密码
 立即注册
查看: 1997|回复: 7

[已解决]while 循环

[复制链接]
发表于 2020-1-11 04:24:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
count = 3
password = 'FishC.com'

while count:
    passwd = input('请输入密码:')
    if passwd == password:
        print('密码正确,进入程序......')
        break
    elif '*' in passwd:
        print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ')
        continue
    else:
        print('密码输入错误!您还有', count-1, '次机会!', end=' ')   
    count -= 1



提问:
1. while循环,在这里是等同于无限循环吗?       
2. continue 跳出当前循环,判断if条件,如果为真,则重新开始循环,如果为假继续执行后续的语句。可是,如果一开始这个if条件就是假的,不就意味着根本执行不到continue这一步了吗
最佳答案
2020-1-11 11:25:22
本帖最后由 Judie 于 2020-1-10 22:30 编辑

1. while循环,在这里是等同于无限循环吗?      
不等同,while循环在这里不等同无限循环。
count = 3
while count:
        ...
        count -= 1 # 即count-1
这个while循环一共只会循环三次,count=3第一次,count=2第二次,count=1第三次
count=1 的那个循环结束,count-=1,count此时=1-1=0
第四次循环开始的时候,count=0,while 0: 的条件不为真,循环不再继续,没有第四次循环
微信图片_20200110222823.jpg


2. continue 跳出当前循环,判断if条件,如果为真,则重新开始循环,如果为假继续执行后续的语句。可是,如果一开始这个if条件就是假的,不就意味着根本执行不到continue这一步了吗
对的,那都是if下都是条件为真执行的操作
微信图片_20200110222813.jpg

/记得设置最佳答案或者继续跟帖提问哦
/希望我的手写笔记能对你有点帮助

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-11 05:49:45 From FishC Mobile | 显示全部楼层
在python 中,对于数字来说,只有0 为假,其他数字都为真
count 在循环中每次减 1,当 count 为 0 时, while 循环就结束撩
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-11 09:19:44 | 显示全部楼层
1.Python里,对于数字,0就代表,其他的都代表真,
每次循环count都会减1,count为0时,也就是假,
while就会结束,并不是无限循环。

2.第二个问题我没听懂,怎么continue不会执行呢?
只要用户输入的密码有"*"不就会执行continue 语句吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-11 11:25:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Judie 于 2020-1-10 22:30 编辑

1. while循环,在这里是等同于无限循环吗?      
不等同,while循环在这里不等同无限循环。
count = 3
while count:
        ...
        count -= 1 # 即count-1
这个while循环一共只会循环三次,count=3第一次,count=2第二次,count=1第三次
count=1 的那个循环结束,count-=1,count此时=1-1=0
第四次循环开始的时候,count=0,while 0: 的条件不为真,循环不再继续,没有第四次循环
微信图片_20200110222823.jpg


2. continue 跳出当前循环,判断if条件,如果为真,则重新开始循环,如果为假继续执行后续的语句。可是,如果一开始这个if条件就是假的,不就意味着根本执行不到continue这一步了吗
对的,那都是if下都是条件为真执行的操作
微信图片_20200110222813.jpg

/记得设置最佳答案或者继续跟帖提问哦
/希望我的手写笔记能对你有点帮助

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-1-11 12:49:25 | 显示全部楼层
1. 不等于。当 count 减到 0 时,count 就为假,循环就会停止。

2. 是的,如果密码中有 * 号,程序会跳出本轮循环。可是,如果循环体执行完毕,会自动执行下一轮循环(如果循环条件不为假)。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-14 15:30:05 | 显示全部楼层
Judie 发表于 2020-1-11 11:25
1. while循环,在这里是等同于无限循环吗?      
不等同,while循环在这里不等同无限循环。
count = 3  ...

谢谢你~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-14 15:32:32 | 显示全部楼层
lixiangyv 发表于 2020-1-11 09:19
1.Python里,对于数字,0就代表,其他的都代表真,
每次循环count都会减1,count为0时,也就是假,
while ...

谢谢你~
我好像想明白了,我一开始的意思是说,比如,用户带*会进入if循环,然后会到达continue这一步,然后continue会再次判断,然后我就觉得说,这个if循环只有当条件为真的时候才会进来,那么continue会毫无意义,因为,if条件可能永远都为真,后来想明白说,进入循环之后,可能会对当初的if的条件造成一定影响,这个时候,continue在进行条件判断的时候,可能就会出现条件为假的状况。~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-14 15:33:43 | 显示全部楼层
XiaoPaiShen 发表于 2020-1-11 05:49
在python 中,对于数字来说,只有0 为假,其他数字都为真
count 在循环中每次减 1,当 count 为 0 时, wh ...

简单明了~谢谢你~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-6 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表