python链式比较

先来看两条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).

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值