4.4 Priorité des opérateurs
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Décrire l'impact de la priorité sur l'ordre des opérations.
- Décrire l'impact de l'associativité sur l'ordre des opérations.
- Expliquer l'utilité des parenthèses dans les expressions comportant plusieurs opérateurs.
Priorité
Lorsqu'une expression comporte plusieurs opérateurs, quel opérateur est évalué en premier ? Les règles de priorité déterminent le niveau de priorité des opérateurs. Les opérateurs ayant la priorité la plus élevée s'exécutent en premier. Ex. : 1 + 2 * 3 vaut 7 car la multiplication a la priorité sur l'addition. Cependant, (1 + 2) * 3 vaut 9 car les parenthèses ont la priorité sur la multiplication.
| Opérateur | Signification |
|---|---|
| () | Parenthèses |
| ** | Exponentiation (associative à droite) |
| *, /, //, % | Multiplication, division, division entière, modulo |
| +, - | Addition, soustraction |
| <, <=, >, >=, ==, != | Opérateurs de comparaison |
| not | Opérateur logique |
| and | Opérateur logique |
| or | Opérateur logique |
Concepts en pratique
Règles de priorité
Quelle partie de chaque expression est évaluée en premier ?
Associativité
Que se passe-t-il si des opérateurs adjacents ont le même niveau de priorité ? L'associativité détermine l'ordre des opérations lorsque la priorité est identique. Ex. : 8 / 4 * 3 est évalué comme (8/4) * 3 plutôt que 8 / (4*3) car la multiplication et la division sont associatives à gauche. La plupart des opérateurs sont associatifs à gauche et sont évalués de gauche à droite. L'exponentiation est l'exception principale (mentionnée ci-dessus) et est associative à droite : c'est-à-dire évaluée de droite à gauche. Ex. : 2 ** 3 ** 4 est évalué comme 2 ** (3**4).
Lorsque des opérateurs de comparaison sont enchaînés, l'expression est convertie en une combinaison équivalente de comparaisons et évaluée de gauche à droite. Ex. : 10 < x <= 20 est évalué comme 10 < x and x <= 20.
Concepts en pratique
Associativité
Comment chaque expression est-elle évaluée ?
Imposer l'ordre et la clarté à l'aide des parenthèses
Les règles de priorité des opérateurs peuvent être difficiles à mémoriser. Les parenthèses permettent non seulement d'imposer un ordre d'évaluation différent, mais aussi de réduire la confusion.
Concepts en pratique
Utilisation des parenthèses
Recommandations de la PEP 8 : espaces autour des opérateurs
Le guide de style PEP 8 recommande un espacement cohérent autour des opérateurs afin d'éviter les espaces superflus et source de confusion.
- Évitez les espaces multiples et un nombre inégal d'espaces autour des opérateurs à deux opérandes.
À éviter :x= y * 44
Préférable :x = y * 44 - Évitez les espaces juste à l'intérieur des parenthèses.
À éviter :x = ( 4 * y )
Préférable :x = (4 * y) - Entourez les opérateurs d'affectation, d'affectation augmentée, de comparaison et les opérateurs booléens d'un espace.
À éviter :x= y<44
Préférable :x = y < 44 - Envisagez d'ajouter des espaces autour des opérateurs de priorité inférieure.
À éviter :x = 5 * z+20
Préférable :x = 5*z + 20