在 Python 中,所有对象都可以用于布尔上下文(如 if、while、bool() 等)。

对象的真假性由其“真值测试”(truth value testing)结果决定:

空容器、零值、None 被视为假(False),其余一律为真(True)。

一、布尔上下文有哪些?

以下是常见的布尔判断场景:

if x: ...
while x: ...
bool(x)
assert x

在这些场景中,x 会被隐式转换为布尔值。

二、被视为 False(假)的值有哪些?

在布尔上下文中,以下 8 类对象会被当作 False:

1、False(布尔假本身)

2、None(空值)

3、数字零:0、0.0、0j(整数、浮点数、复数)

4、空字符串:''(长度为 0)

5、空列表:[]

6、空元组:()

7、空字典:{}

8、空集合:set()

示例:

if not 0:
    print("0 被视为 False")

if not []:
    print("空列表被视为 False")

if not "":
    print("空字符串也被视为 False")

输出:

0 被视为 False
空列表被视为 False
空字符串也被视为 False

三、除了上述之外,其他值都视为 True

包括但不限于:

1、非零数字:如 1,-3.5,complex(1,1)

2、非空字符串:"hello"

3、非空容器:[1],{'a':1},(0,)

示例:

if "Python":
    print("非空字符串为真")

if [0]:
    print("列表不空,即使里面是 0 也为真")

if -1:
    print("-1 是真值")

输出:

非空字符串为真
列表不空,即使里面是 0 也为真
-1 是真值

四、bool() 函数可用于显示判断

print(bool(0))       # False
print(bool(""))      # False
print(bool([]))      # False
print(bool("hi"))    # True
print(bool([0]))     # True

五、推荐用法举例

✅ 好的写法:

if not items:
    print("列表为空")

if name:
    print("用户已输入姓名")

⛔ 不推荐的冗余写法:

if len(items) == 0:        # 多余

if name != "":             # 多余

点赞有美意,赞赏是鼓励