Python语句中的多个条件的简写

时间:2017-02-05 21:51:10

标签: python

if x == y != z:
    print (x + y)

这是if x == y和y!= z的缩写吗?它适用于我的代码,但我不确定当多个条件不是全部​​==或!=时会如何解释它们,或者以上面的后一种形式写出来。

1 个答案:

答案 0 :(得分:5)

documentation

中所述
  

(...)

     

比较可以任意链接,例如, x < y <= z等同于x < y and y <= z ,但y仅评估一次(但在这两种情况下,zx < y被发现为假时都不会被评估。

所以你可以链接任何类型的比较器:<>==>=<=<>,{{ 1}},!=is [not]

文档进一步使其更正式:

  

正式,如果 a b c ,..., y z 是表达式, op1 op2 ,..., opN 是比较运算符,然后[not] in等效于a op1 b op2 c ... y opN z,但每个表达式最多只评估一次。

例如:

a op1 b and b op2 c and ... y opN z

相当于:

'a' in 'ab' in 'zabc'