Python 链式比较

Python 链式比较

在 Python 中有时候可以看到类似 a < b < c 的比较表达式写法,这与数学意义上的比较是一致的,但是和 a < b and b < c 还是有一点区别的。

如在 a < f(x) < c 中,如果 a < f(x) 返回 False,则不会进行 f(x)c 的比较而直接返回 False,这与 a < f(x) and f(x) < c 是一致的。而如果 a < f(x) 返回 True,则还需要进行 f(x)c 的比较,这种情况下,a < f(x) < c 的写法只会调用一次 f(x),而 a < f(x) and f(x) < c 的写法会调用两次 f(x)

示例

  1. a < f(x) < c
In [1]: a = 0                                                                                                                                                   

In [2]: def f(): 
   ...:     global a 
   ...:     a += 1 
   ...:     print(a) 
   ...:     return a 
   ...:                                                                                                                                                         

In [3]: print(0 < f() < 2)                                                                                                                                      
1
True
  1. a < f(x) and f(x) < c
In [1]: a = 0                                                                                                                                                   

In [2]: def f(): 
   ...:     global a 
   ...:     a += 1 
   ...:     print(a) 
   ...:     return a 
   ...:                                                                                                                                                         

In [3]: print(0 < f() and f() < 2)                                                                                                                              
1
2
False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值