Priorité des Opérateurs Python

Bonjour, aspirants programmeurs Python !aujourd'hui, nous allons plonger dans un sujet qui peut sembler un peu intimidant au début, mais je vous promets que vous le trouverez fascinant une fois que nous l'aurons décomposé. Nous parlons de la Priorité des Opérateurs Python. Imaginez-vous que c'est le "ordre de précédence" des opérations en Python. Embarkons ensemble sur ce voyage passionnant !

Python - Operator Precedence

Qu'est-ce que la Priorité des Opérateurs ?

Avant de nous plonger dans les détails spécifiques à Python, comprenons ce que signifie la priorité des opérateurs en général. Imaginez que vous êtes dans une cuisine bondée (restez avec moi, je vous promets que cette analogie aura du sens). Dans cette cuisine, différents chefs sont responsables de différentes tâches. Certains coupent des légumes, d'autres font frire, et certains placent sur les assiettes. Ces tâches doivent être réalisées dans un ordre spécifique pour créer le plat parfait. Cet ordre est similaire à la priorité des opérateurs en programmation.

En Python, lorsque vous écrivez une expression avec plusieurs opérateurs, la priorité des opérateurs détermine l'ordre dans lequel ces opérations sont effectuées. Comme dans notre analogie de cuisine, certaines opérations ont priorité sur d'autres.

Regardons un exemple simple :

resultat = 5 + 3 * 2
print(resultat)

Que pensez-vous que la sortie sera ? Si vous avez deviné 11, vous avez raison ! Mais pourquoi ?

C'est là que la priorité des opérateurs entre en jeu. En Python (et dans la plupart des langages de programmation), la multiplication a une priorité supérieure à l'addition. Donc, l'expression est évaluée comme suit :

  1. D'abord, 3 * 2 est calculé, ce qui donne 6
  2. Ensuite, 5 est ajouté à 6, ce qui nous donne 11

Si nous voulions changer cet ordre, nous utiliserions des parenthèses, comme ceci :

resultat = (5 + 3) * 2
print(resultat)

Maintenant, la sortie serait 16, car les parenthèses ont la priorité la plus haute, forçant l'addition à se produire avant la multiplication.

Tableau de Priorité des Opérateurs Python

Maintenant que nous avons compris le concept, examinons la table complète de la priorité des opérateurs en Python. Rappelez-vous, les opérateurs en haut de la table ont une priorité supérieure à ceux en bas.

Priorité Opérateur Description
1 () Parenthèses
2 ** Exponentiation
3 +x, -x, ~x Unary plus, minus, and bitwise NOT
4 *, /, //, % Multiplication, division, floor division, modulus
5 +, - Addition and subtraction
6 <<, >> Bitwise shift operators
7 & Bitwise AND
8 ^ Bitwise XOR
9 | Bitwise OR
10 ==, !=, >, >=, <, <=, is, is not, in, not in Comparisons, identity, and membership operators
11 not Logical NOT
12 and Logical AND
13 or Logical OR

Ne vous inquiétez pas si certains de ces opérateurs vous semblent étrangers. Nous nous concentrerons sur les plus courants pour le moment.

Exemples de Priorité des Opérateurs Python

Reprenons quelques exemples pour voir comment ce tableau de priorité fonctionne en pratique.

Exemple 1 : Opérateurs Arithmétiques

resultat = 10 + 5 * 2 - 3 ** 2
print(resultat)

Décomposons ceci étape par étape :

  1. 3 ** 2 = 9 (L'exponentiation a la plus haute priorité)
  2. 5 * 2 = 10 (La multiplication vient ensuite)
  3. 10 + 10 - 9 = 11 (Addition et soustraction sont effectuées de gauche à droite)

Donc, le résultat final est 11.

Exemple 2 : Opérateurs de Comparaison et Logiques

x = 5
y = 10
z = 15

resultat = x < y and y < z or x == z
print(resultat)

Voici comment cela est évalué :

  1. x < y est True
  2. y < z est True
  3. x == z est False
  4. True and True est True
  5. True or False est True

Donc, le résultat final est True.

Exemple 3 : Mélange de Différents Types d'Opérateurs

a = 2
b = 3
c = 4

resultat = a * b ** 2 + c > (a + b) * c and not a == b
print(resultat)

Décomposons cela :

  1. b ** 2 = 9 (Exponentiation en premier)
  2. a * 9 = 18 (Multiplication ensuite)
  3. 18 + c = 22 (Addition)
  4. (a + b) = 5 (Parenthèses ont la plus haute priorité)
  5. 5 * c = 20 (Multiplication)
  6. 22 > 20 est True (Comparaison)
  7. a == b est False (Vérification d'égalité)
  8. not False est True (NOT logique)
  9. True and True est True (AND logique)

Le résultat final est True.

Conclusion

Comprendre la priorité des opérateurs est essentiel pour écrire un code Python correct et efficace. Cela vous aide à prédire comment vos expressions seront évaluées et à éviter des résultats inattendus. Rappelez-vous, lorsque vous avez un doute, utilisez des parenthèses pour définir explicitement l'ordre des opérations. Cela non seulement garantit que votre code fonctionne comme prévu, mais le rend également plus lisible pour les autres (et pour votre futur vous !)

Au fur et à mesure de votre parcours en Python, vous vous familiariserez avec ces règles de priorité. Ne vous inquiétez pas si cela semble oppressant au début – avec de la pratique, cela deviendra une seconde nature. Continuez à coder, à expérimenter, et surtout, amusez-vous ! Après tout, la programmation est comme la cuisine – plus vous pratiquez, mieux vos "plats" se turns out. Bon codage, futurs chefs Python !

Credits: Image by storyset