Python专题, 语言

Python中常见的False布尔值和等价性

这里记录一下 Python 中常见的 False 布尔值,以及它们之间的等价性。

主要结论:

  • False、0、0.0、0.0j、None、''、[]、{}、()、set() 等的布尔值都为 False。
  • 虽然以上的布尔值相同,但只有 False、0、0.0、0.0j 和 False 等价。
  • if 判断的环境中会自动转换为布尔值。

验证代码:

"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/45201
"""

# False 布尔值
print(bool(False))  
print(bool(0))
print(bool(0.0))
print(bool(0.0j))
print(bool(None))
print(bool('')) 
print(bool([]))
print(bool({}))
print(bool(())) 
print(bool(set()))
print()

# 虽然布尔值相同,但只有 False, 0, 0.0, 0.0j 和 False 等价
print(False==False) # True
print(False==0) # True
print(False==0.0) # True
print(False==0.0j) # True
print(False==None) # False
print(False=='') # False
print(False==[]) # False
print(False=={}) # False
print(False==()) # False
print(False==set()) # False
print()

def true_or_false(a):
    if a:
        print('True')
    else:
        print('False')

# 'if' 环境中的 False 测试
true_or_false(False)
true_or_false(0)
true_or_false(0.0)
true_or_false(0.0j)
true_or_false(None)
true_or_false('')
true_or_false([])
true_or_false({})
true_or_false(())
true_or_false(set())
print()

# 'if' 环境中的 True 测试
true_or_false(True)
true_or_false('True')
true_or_false('False')
true_or_false('a')
true_or_false(1)
true_or_false(-1)
true_or_false(2)
print()

运行结果:

False
False
False
False
False
False
False
False
False
False

True
True
True
True
False
False
False
False
False
False

False
False
False
False
False
False
False
False
False
False

True
True
True
True
True
True
True
20 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code