iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Software Development

跟著 OXXO 一起學 Python系列 第 6

( Day 5.1 ) Python 邏輯判斷 ( if、elif、else )

  • 分享至 

  • xImage
  •  

在現實世界裡,無時無刻都在進行著邏輯判斷,例如早餐要吃三明治還是麵包?飲料要喝珍奶還是咖啡?然而在 Python 的世界裡,也提供了 if、else、elif 三種語法來處理大量的邏輯判斷運算和流程控制,這篇教學將會介紹這些邏輯判斷。

原文參考:邏輯判斷 ( if、elif、else )

本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )

if 判斷

「if」判斷就如同字面的意思:「如果怎樣...就怎樣...」,使用方式為「if 條件:」,對應的程式需使用「縮排」,如果判斷為 True,就會執行對應的程式,反之如果是 False,就會跳過判斷式,繼續執行下方的程式

Python 教學 - 邏輯判斷 if

下方的程式,因為 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 的程式,當對應的程式都執行完成後,繼續執行下方程式

Python 教學 - 邏輯判斷 if else

下方的程式,因為 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,最後只會有一種結果。

Python 教學 - 邏輯判斷 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

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 4.2 ) Python 縮排和註解
下一篇
( Day 5.2 ) Python 邏輯判斷 ( and 和 or )
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言