Python 的內置函數 bool() 是一個用於將給定值轉換為布爾值(True 或 False)的函數。它是 Python 內置類型轉換函數之一,屬於布爾類型的構造函數。
基本用法
bool() 函數可以接受一個參數,並返回對應的布爾值:
bool(x)
其中 x 是要轉換的值。如果沒有提供參數,bool() 默認返回 False。
轉換規則
Python 中的值在轉換為布爾值時遵循以下規則:
-
False 值:
- 數字 0(包括 0.0 等)
- 空序列(如空字符串
''、空列表[]、空元組()) - 空字典
{} - None
- False 本身
-
True 值:
- 任何非零數字(正數或負數)
- 非空序列(如字符串
'abc'、列表[1,2,3]) - 非空字典
- 大多數其他對象(除非該類定義了特殊的
__bool__()或__len__()方法)
示例
print(bool()) # False(無參數)
print(bool(0)) # False
print(bool(1)) # True
print(bool(-1)) # True
print(bool('')) # False(空字符串)
print(bool('abc')) # True
print(bool([])) # False(空列表)
print(bool([1,2])) # True
print(bool(None)) # False
自定義對象的布爾值
對於自定義類,可以通過定義 __bool__() 或 __len__() 方法來控制其布爾值轉換:
__bool__()優先被調用,應返回 True 或 False- 如果沒有
__bool__(),則調用__len__(),返回 0 時為 False,否則為 True - 如果兩個方法都未定義,則實例始終為 True
應用場景
-
條件判斷中自動進行布爾轉換:
if some_value: # 相當於 if bool(some_value) ... -
明確需要布爾值的場景,如:
result = bool(input("請輸入內容:")) -
數據驗證中檢查值是否為"空":
if not bool(user_input): print("輸入不能為空")
bool() 函數是 Python 中隱式和顯式布爾轉換的基礎,理解其行為對於編寫正確的條件邏輯非常重要。