L-茉遇 发表于 2021-8-31 12:55:21

if和elif的运行逻辑

代码:
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 13:02:27

本帖最后由 小伤口 于 2021-8-31 13:05 编辑

用elif效率要高一点吧
用if所有的条件语句,都会判定一次

大马强 发表于 2021-8-31 13:08:39

都用if的话每一个if都是能独立判断,又n个if就要判断n次
但是if elif 就不一样了,只要满足就不会去判断,所以判断条件小于等于n次
到底用哪个要看实际吧

L-茉遇 发表于 2021-8-31 13:56:55

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

用elif的话,这一串判断下来中间有满足的就直接完事了,低下就不进行运算了是这个意思吧;
还有就是一般结尾必须用else嘛?是习惯用法?

大马强 发表于 2021-8-31 14:49:40

L-茉遇 发表于 2021-8-31 13:56
用elif的话,这一串判断下来中间有满足的就直接完事了,低下就不进行运算了是这个意思吧;
还有就是一般 ...

我感觉用一个else结尾算是习惯吧
页: [1]
查看完整版本: if和elif的运行逻辑