【Python or 運算子的完整指南】從基礎到應用的徹底解析

1. Python 中的 or 運算子的基礎

什麼是 or 運算子?

or 運算子是 Python 的邏輯運算子之一,只要兩個條件中有一個為 True,則結果為 True。只有當兩個條件都為 False 時,結果才會是 False。這個運算子在組合多個條件時特別有用,能夠讓條件判斷變得更加簡潔。

基本用法

or 運算子的使用方式如下。當兩個條件之間使用 or 連結時,只要其中一個條件為 True,整體結果就會是 True

a = 5
b = 10

if a > 3 or b < 5:
    print("其中一個條件為真")
else:
    print("兩個條件皆為假")

在這個範例中,a > 3True,而 b < 5False。由於 or 運算子只要其中一個條件為 True,整體結果就會是 True

or 運算子的特性

or 運算子具有「短路評估(Short-circuit evaluation)」的特性。這表示當左側條件為 True 時,右側條件將不會被評估,這有助於節省計算資源。

例如,在以下程式碼中,由於第一個條件 a > 3True,因此 b == 10 不會被執行。

a = 5
b = 10

if a > 3 or b == 10:
    print("a 大於 3,因此評估在此結束")

2. if 條件判斷與 or 運算子的應用

使用 or 運算子判斷多個條件

在 Python 的 if 條件判斷中,or 運算子可以幫助我們更簡潔地處理多個條件。例如,如果某個條件成立,就執行特定操作,使用 or 可以讓程式碼更簡潔。

以下是根據使用者年齡決定優惠的範例:

age = 16

if age < 18 or age > 65:
    print("符合優惠條件")
else:
    print("不符合優惠條件")

在這個範例中,年齡小於 18 歲或大於 65 歲的使用者可以享有優惠。透過 or 運算子,我們可以將兩個條件簡潔地結合起來。

結合多個條件與 or 運算子

當需要判斷較為複雜的條件時,也可以使用 or 來讓判斷更直觀。以下範例根據溫度或濕度來決定是否開啟空調:

temperature = 35
humidity = 70

if temperature > 30 or humidity > 60:
    print("開啟空調")
else:
    print("不需要開空調")

在這個範例中,只要溫度超過 30 度或濕度超過 60%,就會建議開啟空調。這種方式能夠簡潔地處理日常判斷。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. or 運算子的進階應用

or 運算子在 if 以外的應用

or 運算子不僅限於 if 條件判斷,它還可以用於設定預設值。例如,在處理變數時,如果變數為 None 或空值,可以使用 or 來提供預設值。

def get_list(l=None):
    l = l or []
    return l

print(get_list())  # 結果: []
print(get_list([1, 2, 3]))  # 結果: [1, 2, 3]

在這個範例中,如果參數 lNone,則會自動設定為空列表。透過 or 運算子,我們可以避免使用額外的條件判斷,使程式碼更簡潔。

4. and 與 or 的區別

基本差異

andor 都是邏輯運算子,但其運作方式完全不同。or 運算子只要其中一個條件為 True,整體結果就會是 True,而 and 則需要所有條件都為 True 才會返回 True

a = True
b = False

if a and b:
    print("兩個條件都為真")
else:
    print("其中一個或兩個條件為假")

在這個範例中,即使 aTrue,但 bFalse,所以整體結果為 False

使用多個條件的範例

andor 一起使用時,為了確保條件的清晰性,建議使用括號來組織條件判斷。

temperature = 25
weather = "rainy"

if (temperature > 20 and temperature < 30) or weather == "rainy":
    print("記得帶傘")
else:
    print("不需要帶傘")

在這個例子中,只要氣溫在 20 到 30 度之間,或天氣是雨天,就會建議攜帶雨傘。透過結合 andor,可以更直覺地表達多個條件的關係。

5. or 運算子的效能最佳化

利用短路評估提升效能

or 運算子的一個重要特性是「短路評估」(Short-circuit evaluation),當左側條件為 True 時,右側條件將不會被執行,從而提升效能。

例如,在以下程式碼中,若 can_edit() 回傳 True,則 can_publish() 不會被執行。

def can_edit():
    return True

def can_publish():
    print("這個函數不會被執行")
    return True

if can_edit() or can_publish():
    print("可進行編輯或發佈")

在這個範例中,由於 or 的左側條件已經為 True,右側的 can_publish() 不會被執行,從而減少不必要的運算,提高效能。

實際應用範例

當處理大量數據時,利用短路評估可以減少不必要的計算,提高執行效率。例如,當我們需要判斷多個條件時,可以利用 or 運算子來跳過不必要的計算,確保程式更高效運行。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

6. 總結

回顧 or 運算子的特性

or 運算子在 Python 中扮演著關鍵角色,能夠幫助我們進行條件判斷與流程控制。它的主要特性包括:

  • 只要其中一個條件為 True,結果就會是 True
  • 可與 if 條件語句搭配使用,使判斷條件更簡潔。
  • 支援短路評估,當左側條件為 True 時,右側條件不會被執行,提高效能。
  • 可用於設定預設值,避免使用多餘的條件判斷。

實際測試與應用

建議讀者在 Python 環境中實際撰寫 or 運算子的程式碼,測試不同情境下的執行結果。透過親自操作,可以更直覺地理解其運作方式,並在開發中靈活運用這項強大的運算子。

広告