我正在尝试按照此处给出的布尔逻辑教程进行操作:https://www.geeksforgeeks.org/literals-in-python/
有一个我无法遵循的示例,希望得到帮助。
示例:
a = (1 == True)
b = (1 == False)
c = True + 3
d = False + 7
print("a is", a)
print("b is", b)
print("c is ",c)
困惑:为什么将 b
指定为 1 为 False?为什么 1
再次被重新用来表示 False? 0不应该是False对应的值吗?如果我将行更改为 b = (0 == False)
,那么 print("b is", b)
会显示 b is True
为什么?
答案 0 :(得分:2)
在 Python(和其他一些语言)中,1
等于 True
,0
等于 False
。因此,由于 True != False
,语句 1 == False
(可以重述为 True == False
)本身具有真值 False
并将 (1 == False)
分配给 {{1} } 等同于 b
。反过来,将 b = False
分配给 (0 == False)
会导致 b
,因为 True
与 0 == False
相同,即 False == False
。
答案 1 :(得分:0)
(1 == True)
或 (1 == False)
格式的短语实际上是比较语句,它们的计算结果为 True
或 False
,并分配给左侧的变量。>
在 Python 中,定义为 False
的对象包括:
定义为假的常量:None
和 False
。
任何数字类型的零:0
、0.0
、0j
、Decimal(0)
、Fraction(0, 1)
空序列和集合:''
、()
、[]
、{}
、set()
、range(0)
有关详细信息,请参阅 Python 文档的 Truth Value Testing。