Section courante

A propos

Section administrative du site

Opérateurs et expressions

Le langage de programmation Python proposes les opérateurs Python Built-in ainsi que les règles de priorité utilisables dans l'évaluation des expressions.

Opérations sur les nombres

Les opérations suivantes peuvent être appliquées à tous les types numériques :

Opération Description
x + y Addition
x - y Soustraction
x * y Multiplication
x / y Division
x // y Division tronqué
x ** y Puissance de xy
x % y Modulo (x mod y), ou restant d'une division.
-x Moins unaire
+x Plus unaire

L'opérateur de division de troncature (également connu sous le nom de division de plancher) tronque le résultat en un entier et fonctionne avec les entiers et les nombres à virgule flottante. A partir de cette écriture, le véritable opérateur de division (/) tronque également le résultat en un entier si les opérandes sont des entiers. Par conséquent, 9/4 vaut 1 et non 2,25. Cependant, ce comportement pourrait changer dans une future version de Python, vous devrez donc faire attention. L'opérateur modulo renvoie le reste de la division x//y. Par exemple, 9 % 4 est 1. Pour la virgule flottante, x - (x // y) * y. Pour les nombres complexes, les opérateurs modulo (%) et de division tronquée (//) ne sont pas valides.

Les opérateurs logiques de décalage et de bits suivants ne peuvent être appliqués qu'aux entiers et aux entiers longs :

Opération Description
x << y Décalage vers la gauche
x >> y Décalage vers la droite
x & y ET binaire
x | y OU binaire
x ^ y OU EXCLUSIF binaire (XOR)
-x Négation binaire

Les opérateurs au niveau du bit supposent que les entiers sont représentés dans une représentation binaire complémentaire à 2. Pour les entiers longs, les opérateurs au niveau du bit comme si le bit de signe était étendu à l'infini vers la gauche. Une certaine prudence est requise si vous travaillez avec des modèles de bits bruts destinés à être cartographiés à des entiers natifs sur le matériel. En effet, le langage de programmation Python ne tronque pas les bits ou ne permet pas aux valeurs de déborder - à la place, un résultat est promu en un entier long.

De plus, vous pouvez appliquer les fonctions intégrées suivantes à tous les types numériques :

Fonction Description
abs(x) Valeur absolue
divmod(x,y) Retourne (x // Y, x % y)
pow(x,y,[,modulo]) Retourne (x ** y) % modulo
round(x,[n]) Arrondit au multiple de 10-n le plus proche (nombre à virgule flottante uniquement)

La fonction abs() renvoie la valeur absolue d'un nombre. La fonction divmod() renvoie le quotient et le reste d'une opération de division. La fonction pow() peut être utilisée à la place de l'opérateur **, mais prend également en charge les fonctions ternaires de puissance-modulo (souvent utilisées dans les algorithmes cryptographiques). La fonction round() arrondit un nombre à virgule flottante, x, aux multiples les plus proches 10 à la puissance moins n. Si n est omis, il est mis à 0. Si x est également proche de deux multiples, l'arrondi est effectué toujours à partir de zéro (par exemple, 0,5 est arrondi à 1 et -0,5 est arrondi à -1). Lorsque vous travaillez avec des entiers, le résultat d'une expression est automatiquement promu en entier long s'il dépasse la précision disponible dans le type entier. De plus, les valeurs True et False de Boolean peuvent être utilisées n'importe où dans une expression et ont les valeurs 1 et 0, respectivement. Les opérateurs de comparaison suivants ont l'interprétation mathématique standard et renvoient une valeur booléenne True pour vrai, False pour faux :

Opération Description
x < y Inférieur à
x > y Supérieur à
x == y Égale à
x != y Pas égal à (même chose que <>)
x >= y Supérieur ou égale à
x <= y Inférieur ou égale à

Les comparaisons peuvent être enchaînées, comme dans w < x < y < z. Ces expressions sont évaluées comme w < x et x < y et y < z. Les expressions telles que x < y > z sont légales, mais risquent de dérouter quiconque lisant le code (il est important de noter qu'aucune comparaison n'est faite entre x et z dans une telle expression). Les comparaisons autres que l'égalité impliquant des nombres complexes ne sont pas définies et aboutissent à une TypeError.

Les opérations impliquant des nombres ne sont valides que si les opérandes sont du même type. Si le type diffère, une opération de coercition est effectuée pour convertir l'un des types en l'autre, comme suit :

Opérations sur des séquences

Les opérateurs suivants peuvent être appliqués aux types de séquence, y compris les chaînes de caractères, les listes et les tuples :

Opération Description
s + r Concaténation
s * n,n * s Faire n copie de s, où n est un entier
s % d Formatage de chaîne de caractères (chaîne de caractères seulement)
s[i] Index
s[i:j] Tranche
s[i:j:stride] x in s, x not in s - Membre de
for x in s Itération
len(s) Longueur
min(s) Élément minimum
max(s) Élément maximum

L'opérateur + concatène deux séquences du même type. L'opérateur s * n fait n copies d'une séquence. Cependant, ce sont des copies superficielles répliquant des éléments par référence uniquement.



Dernière mise à jour : Vendredi, le 13 novembre 2020