Python 布林值 (bool) 型別詳解:真假判斷、邏輯運算與應用

Python 布林值 (bool) 型別詳解:真假判斷、邏輯運算與應用 - CCC Blog

Python 布林值 (bool) 型別詳解:真假判斷、邏輯運算與應用

一個開關,一半標示為 True,另一半標示為 False,象徵布林值的二元狀態。

在 Python 程式設計中,布林值 (bool) 是一種非常基本但重要的資料型別,用於表示真 (True) 或假 (False) 兩種狀態。本文將詳細介紹 Python 布林值的定義、邏輯運算、比較運算、型別轉換,以及在條件判斷和迴圈控制中的應用。

什麼是布林值 (bool)?

布林值是只有兩種可能值的資料型別:

  • True: 表示真、成立、是。
  • False: 表示假、不成立、否。

在 Python 中,布林值屬於 bool 型別。

is_valid = True
is_empty = False

print(type(is_valid))  # 輸出: <class 'bool'>

重要觀念TrueFalse 是 Python 的關鍵字 (保留字),必須以大寫字母開頭。

邏輯運算 (Logical Operators)

Python 提供了三個邏輯運算子,用於組合或修改布林值:

  • and (且): 如果兩個運算元都為 True,結果才為 True;否則為 False
  • or (或): 如果兩個運算元中有一個為 True,結果就為 True;否則為 False
  • not (非): 將運算元的值反轉 (如果為 True 則變為 False,反之亦然)。
x = True
y = False

print(f"True and False is {x and y}")  # 輸出: False
print(f"True or False is {x or y}")    # 輸出: True
print(f"not True is {not x}")           # 輸出: False
print(f"not False is {not y}")         # 輸出: True

# 複雜的邏輯運算
a = True
b = False
c = True
print(f"(a and b) or (not c) is {(a and b) or (not c)}")  # 輸出: False

比較運算 (Comparison Operators)

比較運算用於比較兩個值,其結果必然為布林值 (TrueFalse):

運算子意義
==等於
!=不等於
<小於
>大於
<=小於或等於
>=大於或等於
a = 10
b = 5

print(f"10 == 5 is {a == b}")    # 輸出: False
print(f"10 != 5 is {a != b}")    # 輸出: True
print(f"10 > 5 is {a > b}")     # 輸出: True
print(f"10 <= 10 is {a <= 10}") # 輸出: True

其他型別轉換為布林值

在 Python 中,幾乎所有物件都可以被視為一個布林值,這被稱為 "Truthiness"。您可以使用 bool() 函數明確地將其他型別的值轉換為布林值。以下是一些核心轉換規則:

  • 會被視為 False 的值 (Falsy values):
    • 數字零: 0, 0.0
    • 空的容器: "", [], (), {}, set()
    • 特殊物件: None
  • 其他所有值都會被視為 True (Truthy values)。
print(f"bool(0) -> {bool(0)}")          # 輸出: False
print(f"bool(10) -> {bool(10)}")         # 輸出: True
print(f"bool('') -> {bool('')}")         # 輸出: False
print(f"bool('Hello') -> {bool('Hello')}") # 輸出: True
print(f"bool([]) -> {bool([])}")         # 輸出: False
print(f"bool([1, 2]) -> {bool([1, 2])}")  # 輸出: True
print(f"bool(None) -> {bool(None)}")       # 輸出: False

布林值的應用

布林值是程式設計中控制流程的基石:

1. 條件判斷 (if-else)

根據條件的真假來決定執行哪一段程式碼。

age = 20
is_adult = age >= 18 # is_adult is True

if is_adult:
    print("您是成年人,可以進入。")
else:
    print("抱歉,未成年人禁止進入。")

2. 迴圈控制 (while)

while 後面的條件為 True 時,迴圈會持續執行。

is_running = True
count = 0

while is_running:
    print(f"迴圈執行中... count = {count}")
    count += 1
    if count >= 3:
        is_running = False # 將條件變為 False 來結束迴圈

print("迴圈結束。")

總結

Python 的布林值 (bool) 型別雖然只有 TrueFalse 兩種值,但它卻是構建複雜程式邏輯的基礎。透過結合邏輯運算、比較運算,並應用在條件判斷和迴圈控制中,布林值賦予了程式「思考」和「決策」的能力。確實理解其運作方式,對於編寫任何 Python 程式碼都至關重要。

較新的 較舊