Python - 邏輯運算子

歡迎,充滿活力的程式設計師們!今天,我們將深入探討Python的邏輯運算子的迷人世界。如果你是程式設計的新手,也別擔心——我會一步步引導你走過這段旅程,就像我過去幾年教學中對無數學生所做的那樣。所以,倒一杯你最喜歡的飲料,我們一起踏上這場精彩的冒險吧!

Python - Logical Operators

Python 邏輯運算子

在我們深入細節之前,先來了解什麼是邏輯運算子。想像你是一個正在解開謎團的偵探。你擁有各種線索,需要將它們拼湊起來才能達成結論。邏輯運算子就像是你偵探工具箱中的工具——它們幫助你組合和分析不同的資訊(在程式設計中,我們稱這些為“條件”)來做決定。

在Python中,我們有三個主要的邏輯運算子:

運算子 描述
and 如果兩個述句都為真,則返回True
or 如果至少有一個述句為真,則返回True
not 反轉結果,如果結果為真,則返回False

現在,讓我們詳細探索每個運算子。

邏輯 "and" 運算子

“and”運算子就像一個嚴格的父親——只有當兩個條件都滿足時,它才會給予肯定(返回True)。讓我們看一個例子:

is_sunny = True
is_weekend = False

can_go_to_beach = is_sunny and is_weekend
print(can_go_to_beach)  # 輸出:False

在這個例子中,即使天氣晴朗,我們也不能去海灘,因為今天不是週末。"and"運算子要求兩個條件都為True,整體結果才會是True。

以下是另一個例子:

age = 25
has_license = True

can_drive = age >= 18 and has_license
print(can_drive)  # 輸出:True

在這個情況下,兩個條件都滿足(年齡是25,大於等於18,而且該人擁有駕照),所以can_drive是True。

邏輯 "or" 運算子

“or”運算子比較寬容——它就像一個只要至少有一件好事發生就會高興的朋友。如果其中一個條件(或者兩個都)為True,它就會返回True。讓我們看看它是如何運作的:

is_raining = True
has_umbrella = False

will_get_wet = is_raining or has_umbrella
print(will_get_wet)  # 輸出:True

即使我們沒有傘,但下雨了,所以我們還是會淋濕。"or"運算子因為至少有一個條件為True,所以返回True。

以下是另一個例子:

is_holiday = False
is_weekend = True

can_sleep_in = is_holiday or is_weekend
print(can_sleep_in)  # 輸出:True

我們可以睡懶覺,因為今天是週末,即使今天不是假日。

邏輯 "not" 運算子

“not”運算子就像一個反叛者——它會翻轉條件的真值。如果某件事是真的,"not"會讓它變成False,反之亦然。讓我們看看它是如何工作的:

is_boring = False
is_interesting = not is_boring
print(is_interesting)  # 輸出:True

因為is_boring是False,所以not is_boring變成True。

以下是另一個例子:

is_logged_in = True
needs_to_login = not is_logged_in
print(needs_to_login)  # 輸出:False

使用者已經登錄,所以不需要再次登錄。

Python解譯器如何評估邏輯運算子?

現在,讓我們戴上皮膚帽,了解Python是如何評估這些邏輯運算子的。Python對"and"和"or"運算子使用了一個稱為“短路評估”的概念。

對於"and"運算子:

  1. Python首先評估左操作數。
  2. 如果它是False,Python立即返回False,而不評估右操作數。
  3. 如果它是True,Python評估右操作數並返回其值。

對於"or"運算子:

  1. Python首先評估左操作數。
  2. 如果它是True,Python立即返回True,而不評估右操作數。
  3. 如果它是False,Python評估右操作數並返回其值。

這種行為可以非常有用地優化你的代碼並避免錯誤。讓我們看一個例子:

def divide(x, y):
return x / y

a = 10
b = 0

result = b != 0 and divide(a, b)
print(result)  # 輸出:False

在這個情況下,因為b是0,"and"運算子的左操作數(b != 0)是False。Python甚至不嘗試評估divide(a, b),這將導致除以零的錯誤!

Python 邏輯運算子示例

讓我們以一些例子來加強我們的理解:

# 示例1:檢查一個數字是否在範圍內
number = 50
is_in_range = number > 0 and number < 100
print(f"Is {number} between 0 and 100? {is_in_range}")  # 輸出:True

# 示例2:確定一年是否為閏年
year = 2024
is_leap_year = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
print(f"Is {year} a leap year? {is_leap_year}")  # 輸出:True

# 示例3:用戶身份驗證
username = "python_lover"
password = "i<3python"
is_admin = False

can_access_admin_panel = (username == "python_lover" and password == "i<3python") and is_admin
print(f"Can access admin panel? {can_access_admin_panel}")  # 輸出:False

# 示例4:檢查字符串是否為空或只包含空格
text = "   "
is_empty_or_whitespace = not text or text.isspace()
print(f"Is the text empty or whitespace? {is_empty_or_whitespace}")  # 輸出:True

這些例子展示了如何在不同現實世界情境中使用邏輯運算子,從驗證用戶輸入到基於多個條件做出複雜的決策。

未來的編碼巫師們,我們已經揭開了Python邏輯運算子的神秘面紗。記住,練習成就完美,所以不要猶豫在您自己的代碼中嘗試這些運算子。誰知道呢?你可能會成為編程世界的福爾摩斯,輕鬆解決複雜的邏輯謎題!

快樂編碼,願邏輯之力與你同在!

Credits: Image by storyset