📜  用Python链接比较运算符

📅  最后修改于: 2020-01-17 14:00:20             🧑  作者: Mango

在编程语言中,检查两个以上的条件语句非常普遍。假设我们要检查以下情况

a 

最常用的语法如下:

if a < b and b < c :
   {...}

在Python中,有一种更好的方法:可以使用比较运算符的链条来编写。运算符的链可写为:

if a < b < c :
    {.....}

根据Python中的关联性和优先级,Python中的所有比较操作都具有相同的优先级,该优先级低于任何算术、移位或按位运算的优先级。同样与C不同,像
Python中的比较运算符列表:

">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"

比较运算符中的链接:

  1. 比较会产生布尔值:True或False。
  2. 比较可以任意链接。例如:
    x < y <= z 等价于 x < y and y <= z,

    除了y仅被评估一次。
    (但在两种情况下,如果发现x

  3. 形式上,如果a,b,c,…,y,z是表达式,而op1,op2,…,opN是比较运算符,则op1 b op2 c…y opN z等效于op1 b and b op2 c and… y opN z,每个表达式最多计算一次。
  4. 同时:
    a op1 b op2 c

    并不意味着在a和c之间进行任何形式的比较,因此:

     a  c

    是完全合法的。

    # Python 代码展示运算符的运算符的串联
    x = 5
    print(1 < x < 10)
    print(10 < x < 20 )
    print(x < 10 < x*10 < 100)
    print(10 > x <= 9)
    print(5 == x > 4)

    输出:

    True
    False
    True
    True
    True

    另一个例子:

    # Python
    a, b, c, d, e, f = 0, 5, 12, 0, 15, 15
    exp1 = a <= b < c > d is not e is f
    exp2 = a is d > f is not c
    print(exp1)
    print(exp2)

    输出:

    True
    False