理解布尔逻辑的困惑

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 等于 True0 等于 False。因此,由于 True != False,语句 1 == False(可以重述为 True == False)本身具有真值 False 并将 (1 == False) 分配给 b 等同于 b = False。反过来,将 (0 == False) 分配给 b 会导致 True,因为 0 == FalseFalse == False 相同,即 True.

格式为(1 == True)(1 == False)的短语实际上是比较语句,它们的计算结果为TrueFalse,赋值给左边的变量。

在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