全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-19 5 分钟 ✍️ juanwangdev

Python布尔类型与逻辑值

布尔类型表示真假,Python 的真值测试规则决定对象的布尔值。

布尔类型

True 和 False

Python
is_true = True
is_false = False

print(type(is_true))   # bool
print(is_true == 1)    # True(True 等于 1)
print(is_false == 0)   # True(False 等于 0)

布尔运算

Python
# 逻辑运算
print(True and True)   # True
print(True and False)  # False
print(False or True)   # True
print(not True)        # False
print(not False)       # True

真值测试规则

bool() 函数

Python
print(bool(True))   # True
print(bool(False))  # False
print(bool(1))      # True
print(bool(0))      # False
print(bool("hello")) # True
print(bool(""))     # False

假值对象

以下对象布尔值为 False:

Python
# 假值列表
False
None
0, 0.0
"", ''  # 空字符串
[], (), {}  # 空容器
set(), range(0)

print(bool(None))     # False
print(bool([]))       # False
print(bool(""))       # False
print(bool(0))        # False

真值对象

非假值对象均为 True:

Python
print(bool(1))        # True
print(bool(-1))       # True
print(bool("hello"))  # True
print(bool([1]))      # True
print(bool({"a": 1})) # True

条件判断中的应用

直接使用对象

Python
name = "Alice"
if name:  # name 为真值(非空字符串)
    print(f"Hello, {name}")

items = []
if not items:  # items 为假值(空列表)
    print("Empty list")

常见模式

Python
# 检查非空
def process(items):
    if items:  # 非空则处理
        return sum(items)
    return 0

# 检查变量存在
value = None
if value is not None:
    print(value)

# 短路求值
x = 10
result = x > 5 and "big" or "small"
print(result)  # big

逻辑运算符

and 运算

Python
# 返回第一个假值或最后一个真值
print(True and 5)    # 5
print(5 and True)    # True
print(False and 5)   # False
print(0 and 5)       # 0
print(None and 5)    # None

or 运算

Python
# 返回第一个真值或最后一个假值
print(False or 5)    # 5
print(None or 5)     # 5
print(0 or False)    # False
print([] or "empty") # empty

not 运算

Python
print(not True)      # False
print(not False)     # True
print(not [])        # True
print(not [1])       # False

比较运算返回布尔值

比较运算

Python
print(5 > 3)   # True
print(5 < 3)   # False
print(5 == 5)  # True
print(5 != 3)  # True
print(5 >= 5)  # True
print(5 <= 3)  # False

链式比较

Python
x = 5
print(1 < x < 10)   # True
print(1 < x > 10)   # False

# 等价于
print(1 < x and x < 10)  # True

实际应用

默认值设置

Python
def greet(name=None):
    # name 为 None 或空时使用默认值
    display_name = name or "Guest"
    print(f"Hello, {display_name}")

greet()         # Hello, Guest
greet("Alice")  # Hello, Alice
greet("")       # Hello, Guest(空字符串为假值)

条件过滤

Python
values = [0, 1, 2, None, "", "hello", [], [1]]

# 过滤真值
filtered = [v for v in values if v]
print(filtered)  # [1, 2, 'hello', [1]]

要点总结

  1. 布尔值只有 True 和 False
  2. 假值:None、0、空容器、空字符串、False
  3. 非假值对象均为真值
  4. and 返回第一个假值或最后一个真值
  5. or 返回第一个真值或最后一个假值

📝 发现内容有误?点击此处直接编辑

← 上一篇 Python字符串基础操作
下一篇 → Python数值运算与精度
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库