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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow