聊一聊Python中,if与elif的那些事儿

聊一聊Python中,if与elif的那些事儿

作为新手,还真是时常会忘记适用 elif 这个好用的判断方法。或者干脆不知道什么时候适用 elif。

关于 if 与 elif,以下两个问题可能是大家比较关心的:

  1. 只用 if 进行判断和 if 与 elif 一起搭配判断,有什么区别?
  2. elif的适用情况有哪些?

话不多说来看例子:

在学习群里看到有个网友抛出这样一段代码,先来猜猜最终会打印什么?

x = -10
y = 1

if x<20:
    y += 1
elif x<10:
    y += 2
elif x<0:
    y += 3
else:
    y += 4

print(y)

答案是: 2

也就是说,当 if 与 elif 互相搭配的时候,只要判断条件中,找到了一个符合条件的,执行相应的代码之后,就不会进行进行下一个判断了。

在这个例子中,x = -10,符合第一个条件:x<20,执行y = y + 1 = 2,跳出分支,打印y,程序结束!

如果把 elif 全部换成 if 结果会是什么:

x = -10
y = 1

if x<20:
    y += 1
if x<10:
    y += 2
    
if x<0:
    y += 3
else:
    y += 4

print(y)

答案是: 7

这段代码是这样执行的:

  1. 判断第一个 if 成立,y = y + 1 = 2;
  2. 接着判断第二个 if ,也成立,执行 y = y + 2 = 4
  3. 接着进入第三个分支,判断 if 成立,执行 y = y + 3 = 4 + 3 = 7, else 不执行。

由此可知:

  1. 如果有单独使用 if ,并且多个 if 处在同一缩进上,那么程序会挨个进行判断,只要符合条件,就会按照顺序执行。
  2. 如果 if - elif 或者 if - elif - else 搭配使用,那么只要判断成立,执行其下方的语句之后,程序就会退出分支,不会遍历所有的条件。

elif 的适用情况:

如果碰到多种条件,但只需要一个输出的时候,考虑使用 if - elif。这样可以提高运行效率呀,不需要遍历嘛!

反过来想,如果你只需要一条路走到黑,那就大胆的只是用 if 吧!

小结
有点说得不清不楚的感觉。
大家一起多敲代码,多思考吧!

猜你喜欢

转载自blog.csdn.net/Haoyu_xie/article/details/106067781