博客 / 詳情

返回

Python 的內置函數 bool

Python 的內置函數 bool() 是一個用於將給定值轉換為布爾值(True 或 False)的函數。它是 Python 內置類型轉換函數之一,屬於布爾類型的構造函數。

基本用法

bool() 函數可以接受一個參數,並返回對應的布爾值:

bool(x)

其中 x 是要轉換的值。如果沒有提供參數,bool() 默認返回 False。

轉換規則

Python 中的值在轉換為布爾值時遵循以下規則:

  1. False 值

    • 數字 0(包括 0.0 等)
    • 空序列(如空字符串 ''、空列表 []、空元組 ()
    • 空字典 {}
    • None
    • False 本身
  2. 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

應用場景

  1. 條件判斷中自動進行布爾轉換:

    if some_value:  # 相當於 if bool(some_value)
        ...
  2. 明確需要布爾值的場景,如:

    result = bool(input("請輸入內容:"))
  3. 數據驗證中檢查值是否為"空":

    if not bool(user_input):
        print("輸入不能為空")

bool() 函數是 Python 中隱式和顯式布爾轉換的基礎,理解其行為對於編寫正確的條件邏輯非常重要。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.