对布尔逻辑的理解混乱

时间:2021-06-20 14:33:33

标签: python boolean 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 为什么?

2 个答案:

答案 0 :(得分:2)

在 Python(和其他一些语言)中,1 等于 True0 等于 False。因此,由于 True != False,语句 1 == False(可以重述为 True == False)本身具有真值 False 并将 (1 == False) 分配给 {{1} } 等同于 b。反过来,将 b = False 分配给 (0 == False) 会导致 b,因为 True0 == False 相同,即 False == False

答案 1 :(得分:0)

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

在 Python 中,定义为 False 的对象包括:

<块引用>

定义为假的常量:NoneFalse

任何数字类型的零:00.00jDecimal(0)Fraction(0, 1)

空序列和集合:''()[]{}set()range(0)

有关详细信息,请参阅 Python 文档的 Truth Value Testing