Python Language Comparaisons en chaîne


Exemple

Vous pouvez comparer plusieurs éléments avec plusieurs opérateurs de comparaison avec une comparaison en chaîne. Par exemple

x > y > z

est juste une forme abrégée de:

x > y and y > z

Ceci évaluera à True seulement si les deux comparaisons sont True .

La forme générale est

a OP b OP c OP d ...

OP représente l'une des multiples opérations de comparaison que vous pouvez utiliser, et les lettres représentent des expressions valides arbitraires.

Notez que 0 != 1 != 0 0 != 0 vaut True , même si 0 != 0 est False . Contrairement à la notation mathématique commune dans laquelle x != y != z signifie que x , y et z ont des valeurs différentes. Le chaînage des opérations == a un sens naturel dans la plupart des cas, puisque l'égalité est généralement transitive.

Style

Il n'y a pas de limite théorique sur le nombre d'éléments et d'opérations de comparaison que vous utilisez tant que vous avez la syntaxe appropriée:

1 > -1 < 2 > 0.5 < 100 != 24

Ce qui précède renvoie True si chaque comparaison renvoie True . Cependant, utiliser un chaînage compliqué n'est pas un bon style. Un bon chaînage sera "directionnel", pas plus compliqué que

1 > x > -4 > y != 8

Effets secondaires

Dès qu'une comparaison renvoie False , l'expression est immédiatement évaluée à False , en ignorant toutes les comparaisons restantes.

Notez que l'expression exp dans a > exp > b sera évaluée une seule fois, alors que dans le cas de

a > exp and exp > b

exp sera calculée deux fois si a > exp est vraie.