邏輯判斷 ( 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
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~