Chaînage des opérateurs de comparaison en Python

Isaac Tony 3 avril 2022
Chaînage des opérateurs de comparaison en Python

Les comparaisons sont une partie essentielle de tous les langages de programmation.

En Python, les opérateurs de comparaison sont utilisés pour comparer des valeurs et renvoient True ou False selon la condition testée. Ces conditions incluent la vérification si les valeurs du côté gauche ou droit sont égales, supérieures ou inférieures à une certaine valeur.

Contrairement aux opérateurs arithmétiques, qui ont la priorité, les opérateurs de comparaison ont la même priorité, qui est inférieure à celle des autres opérateurs tels que les opérateurs au niveau du bit et les opérateurs arithmétiques.

Les opérateurs de comparaison ne sont pas limités aux types numériques mais peuvent également comparer des types de séquence, des types d’ensemble et des valeurs booléennes.

Habituellement, les opérateurs de comparaison sont combinés à l’aide d’opérateurs logiques pour former des instructions conditionnelles. Les opérateurs de comparaison peuvent également être utilisés avec des instructions if et des boucles telles que les boucles for et while.

Dans l’exemple ci-dessous, des opérateurs de comparaison ont été utilisés avec des opérateurs logiques pour former des instructions conditionnelles qui testent l’égalité de deux valeurs arithmétiques.

x = 5
y = 7
z = 10

if y > x and z > y:
    print("z is the greatest number")
else:
    print("z is not the greatest number")

Production :

z is the greatest number

Comme le montre l’exemple ci-dessous, nous pouvons enchaîner les opérateurs au lieu d’utiliser simultanément les opérateurs logiques et les opérateurs de comparaison. Cette méthode est plus précise et facile à comprendre.

x = 5
y = 7
z = 10

if x < z > y:
    print("z is the greatest number")
else:
    print("z is not the greatest number")

Production :

z is the greatest number

Dans l’exemple ci-dessus, nous avons enchaîné les opérateurs de comparaison pour déterminer si z est le plus grand nombre. De même, les opérateurs de comparaison peuvent déterminer si certains nombres sont égaux à l’aide de l’opérateur égal à et différent de.

length = 23
height = 23
width = 6

if length == height and height == width and width == length:
    print("This is a cube")

else:
    print("This is a cuboid")

Production :

This is a cuboid

Dans le code ci-dessus, height, width et length sont évalués deux fois avant de terminer tous les cycles de comparaison.

Cependant, en enchaînant arbitrairement les opérateurs, nous pouvons réécrire le code ci-dessus plus précisément, comme le montre l’exemple ci-dessous. L’exemple ci-dessous n’a évalué l’expression qu’une seule fois.

if length == height == width:
    print("This is a cube ")

else:
    print("This is a cuboid ")

Production :

This is a cuboid 

Nous pouvons également utiliser le concept d’opérateurs de chaînage pour nous assurer qu’une séquence de certaines valeurs est égale. Dans l’exemple ci-dessous, nous testons sans effort l’égalité de trois valeurs différentes en enchaînant les valeurs ensemble.

a = 3
b = 5
c = 9

if a == b == c:
    print("All the variables are equal")
else:
    print("Variable are not the same")

Production :

Variable are not the same

L’opérateur d’égalité étant transitif, on peut conclure que, si a == b et b == c, la valeur de b doit être égale à c.

Cependant, nous devons être prudents car la même équivalence ou non-équivalence ne peut pas être impliquée dans des opérateurs de comparaison non transitifs tels que l’opérateur != utilisé pour tester la non-égalité.

De même, nous pouvons également chaîner l’opérateur < pour déterminer si les nombres d’une séquence sont strictement croissants ou non.

a = 3
b = 5
c = 9
d = 11
e = 13


if a < b < c < d < e:
    print("This is an ascending sequence of numbers")
else:
    print("This is not an ascending sequence of numbers")

Production :

This is an ascending sequence of numbers
Auteur: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Article connexe - Python Operator