鱼C论坛

 找回密码
 立即注册
查看: 2448|回复: 4

[已解决]if和elif的运行逻辑

[复制链接]
发表于 2021-8-31 12:55:21 | 显示全部楼层 |阅读模式

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

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

x
代码:
count = 3
password = 'lhy'
while count:
    passwd = input('请输入您的密码:')
    if '*' in passwd:
        print('密码不带“*”,请重新输入,你还有',count,'次机会')
        continue
    if passwd == password:
        print('密码正确,进入系统啦!')
        break
    if passwd != password:
        print('输入错误,您还有',count-1,'次机会')
    count -= 1
疑问: 参考答案中 把后两个 if 改成了elif,我用了三个if也能正常运行,这其中有啥差别?
最佳答案
2021-8-31 14:49:40
L-茉遇 发表于 2021-8-31 13:56
用elif的话,这一串判断下来中间有满足的就直接完事了,低下就不进行运算了是这个意思吧;
还有就是一般 ...

我感觉用一个else结尾算是习惯吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-31 13:02:27 | 显示全部楼层
本帖最后由 小伤口 于 2021-8-31 13:05 编辑

用elif效率要高一点吧
用if所有的条件语句,都会判定一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-8-31 13:08:39 | 显示全部楼层
都用if的话每一个if都是能独立判断,又n个if就要判断n次
但是if elif 就不一样了,只要满足就不会去判断,所以判断条件小于等于n次
到底用哪个要看实际吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-31 13:56:55 | 显示全部楼层
大马强 发表于 2021-8-31 13:08
都用if的话每一个if都是能独立判断,又n个if就要判断n次
但是if elif 就不一样了,只要满足就不会去判断, ...

用elif的话,这一串判断下来中间有满足的就直接完事了,低下就不进行运算了是这个意思吧;
还有就是一般结尾必须用else嘛?是习惯用法?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-31 14:49:40 | 显示全部楼层    本楼为最佳答案   
L-茉遇 发表于 2021-8-31 13:56
用elif的话,这一串判断下来中间有满足的就直接完事了,低下就不进行运算了是这个意思吧;
还有就是一般 ...

我感觉用一个else结尾算是习惯吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-4 17:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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