python链式比较

xiaoxiao2021-02-28  44

先来看两条python语句:

print(1 < (2 == 2)) print(1 < 2 == 2)

先不要看答案,自己想一下这两天语句的执行结果会是什么呢?

一般的思路:

第一条语句中,先计算 2 == 2 ,结果是 True ,再计算 1 < True ,结果应该是 False

第二条语句中,先计算 1 < 2 , 结果是 True ,再计算 True == 2 ,结果应该是 False

公布答案:

我们发现第一个结果和我们预期的一样,但是第二个不一样。难道python里True的值为2?

并非如此!

python有链式比较的机制,也就是对这种 a < b < c 比较方式的计算跟C、Java等语言有所不同。它并非以 (a < b) < c 的方式计算,而是等价于 a < b and b < c

现在再来看我们的第二条语句,可以将它等价为 1 < 2 and 2 == 2 ,两个比较都为真,它们的与当然也为真啦!

有了链式比较,我们就可以更加清晰又简洁地写出判断条件了。

最后赋上查询的文档地址:点击打开链接

以下是文档主要内容:

Comparisons can be chained arbitrarily, e.g., x < y <= z is equivalent to x < y and y <= z, except that y is evaluated only once (but in both cases z is not evaluated at all when x < y is found to be false).

转载请注明原文地址: https://www.6miu.com/read-2624333.html

最新回复(0)