Python Language
Priorité de l'opérateur
Recherche…
Introduction
Les opérateurs Python ont un ordre de priorité défini, qui détermine quels opérateurs sont évalués en premier dans une expression potentiellement ambiguë. Par exemple, dans l'expression 3 * 2 + 7, le premier 3 est multiplié par 2, puis le résultat est ajouté à 7, ce qui donne 13. L'expression n'est pas évaluée dans l'autre sens, car * a une priorité supérieure à +.
Vous trouverez ci-dessous une liste des opérateurs par ordre de priorité et une brève description de ce qu’ils font (généralement).
Remarques
De la documentation Python:
Le tableau suivant résume les priorités de l'opérateur en Python, de la plus faible priorité (la plus faible liaison) à la plus haute priorité (la plus contraignante). Les opérateurs dans la même boîte ont la même priorité. A moins que la syntaxe ne soit explicitement donnée, les opérateurs sont binaires. Les opérateurs du même groupe de boîtes de gauche à droite (sauf pour les comparaisons, y compris les tests, qui ont tous la même priorité et la chaîne de gauche à droite et d'exponentiation, les groupes de droite à gauche).
Opérateur | La description |
---|---|
lambda | Expression lambda |
sinon | Expression conditionnelle |
ou | Booléen OU |
et | Booléen ET |
pas x | Booléen PAS |
in, not in, is, n'est pas, <, <=,>,> =, <>,! =, == | Comparaisons, y compris les tests d'adhésion et les tests d'identité |
| | Bit à bit OU |
^ | Bit par bit XOR |
Et | Bitwise AND |
<<, >> | Quarts de travail |
+, - | Addition et soustraction |
*, /, //,% | Multiplication, division, reste [8] |
+ x, -x, ~ x | Positif, négatif, pas binaire |
** | Exponentiation [9] |
x [index], x [index: index], x (arguments ...), x.attribute | Abonnement, découpage, appel, référence d'attribut |
(expressions ...), [expressions ...], {key: value ...}, expressions ... | Reliure ou affichage de tuple, affichage de liste, affichage de dictionnaire, conversion de chaîne |
Exemples de priorité d'opérateur simple en python.
Python suit la règle PEMDAS. PEMDAS signifie parenthèses, exposants, multiplication et division, et additions et soustractions.
Exemple:
>>> a, b, c, d = 2, 3, 5, 7
>>> a ** (b + c) # parentheses
256
>>> a * b ** c # exponent: same as `a * (b ** c)`
7776
>>> a + b * c / d # multiplication / division: same as `a + (b * c / d)`
4.142857142857142
Extras: les règles mathématiques tiennent, mais pas toujours :
>>> 300 / 300 * 200
200.0
>>> 300 * 200 / 300
200.0
>>> 1e300 / 1e300 * 1e200
1e+200
>>> 1e300 * 1e200 / 1e300
inf