Python 布林值 (bool) 型別詳解:真假判斷、邏輯運算與應用
在 Python 程式設計中,布林值 (bool) 是一種非常基本但重要的資料型別,用於表示真 (True) 或假 (False) 兩種狀態。本文將詳細介紹 Python 布林值的定義、邏輯運算、比較運算、型別轉換,以及在條件判斷和迴圈控制中的應用。
什麼是布林值 (bool)?
布林值是只有兩種可能值的資料型別:
- True: 表示真、成立、是。
- False: 表示假、不成立、否。
在 Python 中,布林值屬於 bool 型別。
is_valid = True
is_empty = False
print(type(is_valid)) # 輸出: <class 'bool'>
重要觀念: True 和 False 是 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)
比較運算用於比較兩個值,其結果必然為布林值 (True 或 False):
運算子 | 意義 |
---|---|
== | 等於 |
!= | 不等於 |
< | 小於 |
> | 大於 |
<= | 小於或等於 |
>= | 大於或等於 |
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) 型別雖然只有 True 和 False 兩種值,但它卻是構建複雜程式邏輯的基礎。透過結合邏輯運算、比較運算,並應用在條件判斷和迴圈控制中,布林值賦予了程式「思考」和「決策」的能力。確實理解其運作方式,對於編寫任何 Python 程式碼都至關重要。