python中的零相等

时间:2014-11-13 15:30:52

标签: python python-2.7 math

为什么这两个等式在Python中会产生两种不同的结果?我不确定为什么第一个输出零;我期待True

>>> 0 and 2 >= 0
0
>>> 2 and 0 >= 0
True

4 个答案:

答案 0 :(得分:6)

因为第一个被解析为

(0) and (2 >= 0)   # 0 evaluates to False

评估为

0 and True

哪个是

0

同样,第二个是

(2) and (0 >= 0)   # any non-zero digit is evaluated to True

评估为

True and True

哪个是

True

如果您要评估这两个数字,可以执行

>>> 0 >= 0 and 2 >= 0
True

如果您想检查某些标准,可以使用多位数字

>>> l = [1,4,6,2,7,3]
>>> all(i >= 0 for i in l)
True

答案 1 :(得分:1)

According to reference x and y被评估为if x is false, then x, else y。因此,它将第一个值返回转换为bool类型。第一个值是0

答案 2 :(得分:0)

>>> 2 >= 0
True
>>> 0 and True
0
>>> False and True
False

首先,它评估表达式2> = 0然后0和True。 因为在python 0中相当于False,这就是 anding 0和True给出结果0的原因

>>> 2 and 0 >= 0
True
>>> 0 >= 0
True
>>> 2 and True
True
>>>

此处2大于0的方式相同,为True。和 anding 他们给出结果True

答案 3 :(得分:0)

您正在看到and运营商的短路。如果第一个操作数未计算为真值,则逐字返回第一个值。

0 and 0False and False

进行比较