理解布尔逻辑的困惑
Confusion in understanding Boolean logic
我正在尝试按照此处给出的布尔逻辑教程进行操作: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
How come?
在 Python(以及其他一些语言)中,1
等于 True
,0
等于 False
。因此,由于 True != False
,语句 1 == False
(可以重述为 True == False
)本身具有真值 False
并将 (1 == False)
分配给 b
等同于 b = False
。反过来,将 (0 == False)
分配给 b
会导致 True
,因为 0 == False
与 False == False
相同,即 True
.
格式为(1 == True)
或(1 == False)
的短语实际上是比较语句,它们的计算结果为True
或False
,赋值给左边的变量。
在Python中,定义为False
的对象包括:
constants defined to be false: None
and False
.
zero of any numeric type: 0
, 0.0
, 0j
, Decimal(0)
, Fraction(0, 1)
empty sequences and collections: ''
, ()
, []
, {}
, set()
, range(0)
有关详细信息,请参阅 Python 文档的 Truth Value Testing。
我正在尝试按照此处给出的布尔逻辑教程进行操作: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
How come?
在 Python(以及其他一些语言)中,1
等于 True
,0
等于 False
。因此,由于 True != False
,语句 1 == False
(可以重述为 True == False
)本身具有真值 False
并将 (1 == False)
分配给 b
等同于 b = False
。反过来,将 (0 == False)
分配给 b
会导致 True
,因为 0 == False
与 False == False
相同,即 True
.
格式为(1 == True)
或(1 == False)
的短语实际上是比较语句,它们的计算结果为True
或False
,赋值给左边的变量。
在Python中,定义为False
的对象包括:
constants defined to be false:
None
andFalse
.zero of any numeric type:
0
,0.0
,0j
,Decimal(0)
,Fraction(0, 1)
empty sequences and collections:
''
,()
,[]
,{}
,set()
,range(0)
有关详细信息,请参阅 Python 文档的 Truth Value Testing。