逻辑判断 ( if、elif、else )
在现实世界里,无时无刻都在进行着逻辑判断,例如早餐要吃三明治还是面包?饮料要喝珍奶还是咖啡?然而在 Python 的世界里,也提供了 if、else、elif 三种语法来处理大量的逻辑判断运算和流程控制,这篇教学将会介绍这些逻辑判断。
快速导览:if 判断、if、else、if、elif、else、巢状判断、三元运算式
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
if 判断
“if”判断就如同字面的意思:“如果怎样...就怎样...”,使用方式为“if 條件:”,对应的程序需使用“缩排”,如果判断为 True,就会执行对应的程序,反之如果是 False,就会跳过判断式,继续执行下方的程序。
下方的程序,因为 a>b 的结果为 False,所以只会印出 ok。
a = 2
b = 3
if a>b:
print('hello') # 不會印出,因為結果為 False
print('ok') # ok
if、else
if 可以和 else 搭配使用,if 对应结果为 True 的程序,else 对应结果为 False 的程序,当对应的程序都执行完成后,继续执行下方程序。
下方的程序,因为 a>b 的结果为 False,所以会先印出 world,然后印出 ok。
a = 2
b = 3
if a>b:
print('hello') # 不會印出,因為結果為 False
else:
print('world') # world
print('ok') # ok
if、elif、else
如果加入 elif 的条件判断,搭配 if 和 else ,就能判断多种不同的条件,elif 的使用方式为“elif 條件:”,if 和 elif 都能针对各自对应的 True 结果执行对应的程序,而 else 仍然是对应结果为 False 的程序,当对应的程序都执行完成后,继续执行下方程序。
一个逻辑判断里,只会有一个 if 和 else,但可以有多个 elif。
不论是 if、elif 还是 else,最后只会有一种结果。
下方的程序,因为 elif 的结果为 True,所以会先印出 a<b,然后印出 ok。
a = 2
b = 3
if a>b:
print('a>b') # 不會印出
elif a<b:
print('a<b') # a<b
else:
print('a=b') # 不會印出
print('ok') # ok
如果遇到“不想执行任何动作”的状况,可以使用“pass”作为空式子,藉以保持语法的正确性。
a = 2
b = 3
if a>b:
pass # 不做任何動作
elif a<b:
print('a<b') # a<b
else:
print('a=b') # 不會印出
print('ok') # ok
巢状判断
“巢状判断”表示“一个判断式里,还有另外 n 个判断”,就像鸟巢一般层层判断下去,下方的程序执行后,会先印出 a>b,接着进行第二层判断印出 a=2,最后再印出 ok。
a = 2
b = 3
if a<b:
print('a<b') # a<b
if a==1:
print('a=1') # 不會印出
elif a==2:
print('a=2') # a=2
elif a==3:
print('a=3') # 不會印出
elif a>b:
print('a>b') # 不會印出
else:
print('a=b') # 不會印出
print('ok') # ok
三元运算式 ( 条件运算式 )
如果一个判断式里面只有 if 和 else,就能够使用三元运算式来简化,三元运算式的语法为:
变数 = 值1 if 条件式 else 值2
举例来说,下方的程序码会判断 a 和 b 的大小,判断后会赋值给 c,最后印出 C。
a = 1
b = 2
c = ''
if a>b:
c = 'a'
else:
c = 'b'
print(c) # b
透过三元运算式化简之后,就得到下面的结果:
a = 1
b = 2
c = ''
c = 'a' if a>b else 'b'
print(c) # b
微信扫码关注
抖音扫码关注