在 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 != "": # 多余“点赞有美意,赞赏是鼓励”
热门跟贴