聊一聊Python中,if与elif的那些事儿
作为新手,还真是时常会忘记适用 elif 这个好用的判断方法。或者干脆不知道什么时候适用 elif。
关于 if 与 elif,以下两个问题可能是大家比较关心的:
- 只用 if 进行判断和 if 与 elif 一起搭配判断,有什么区别?
- 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
这段代码是这样执行的:
- 判断第一个 if 成立,y = y + 1 = 2;
- 接着判断第二个 if ,也成立,执行 y = y + 2 = 4
- 接着进入第三个分支,判断 if 成立,执行 y = y + 3 = 4 + 3 = 7, else 不执行。
由此可知:
- 如果有单独使用 if ,并且多个 if 处在同一缩进上,那么程序会挨个进行判断,只要符合条件,就会按照顺序执行。
- 如果 if - elif 或者 if - elif - else 搭配使用,那么只要判断成立,执行其下方的语句之后,程序就会退出分支,不会遍历所有的条件。
elif 的适用情况:
如果碰到多种条件,但只需要一个输出的时候,考虑使用 if - elif。这样可以提高运行效率呀,不需要遍历嘛!
反过来想,如果你只需要一条路走到黑,那就大胆的只是用 if 吧!
小结
有点说得不清不楚的感觉。
大家一起多敲代码,多思考吧!