bool() 是 Python 的內(nèi)置函數(shù),用于將任意值轉(zhuǎn)換為布爾值(True 或 False),其核心規(guī)則如下:
- 基本轉(zhuǎn)換邏輯
- 假值(False):
None,False, 數(shù)值零(0,0.0,0j), 空序列("",[],()), 空映射({})bool(0) False bool("") False bool([]) False - 真值(True):
除上述假值外的所有對(duì)象bool(3) True(非零數(shù)) bool(" ") True(含空格的字符串) bool([None]) True(非空列表)
特殊對(duì)象處理
| 對(duì)象類(lèi)型 | 返回值 | 說(shuō)明 |
|----------------|--------|-----------------------|
| 自定義類(lèi)實(shí)例 |True| 默認(rèn)始終為真 |
| 實(shí)現(xiàn)__bool__| 自定義 | 按該方法返回值 |
| 實(shí)現(xiàn)__len__| 自定義 | 若__bool__未定義,按長(zhǎng)度非零判斷 |實(shí)用示例
檢查數(shù)據(jù)有效性
data = []
if not bool(data):
print("數(shù)據(jù)為空") 輸出
條件過(guò)濾
values = [0, 3, "", "text"]
filtered = list(filter(bool, values)) 結(jié)果: [3, "text"]
- 與邏輯操作結(jié)合
短路求值應(yīng)用
x = 0
result = x and bool(x) 返回 0(因 x 為假值)
注意:
- 空字典
{}和空集合set()均為假值- 布爾轉(zhuǎn)換是隱式條件判斷的基礎(chǔ)(如
if x:等價(jià)于if bool(x):)