Les opérateurs sont juste des symboles pour des actions
Un opérateur est un symbole (ou un court mot-clé) qui dit à Python de faire quelque chose avec une ou deux valeurs — les additionner, les comparer, vérifier si l'une contient l'autre. Tu en connais déjà quelques-uns grâce aux maths de base ; Python en a quelques-uns en plus pour la logique, l'appartenance et l'identité.
On va passer les principales catégories une à une.
Opérateurs arithmétiques
Les opérateurs mathématiques standard, plus deux spécialités Python :
Deux éléments de cette liste sont faciles à oublier :
/renvoie un float même quand les deux côtés sont des entiers.10 / 2te donne5.0. Pour une division entière, utilise//.%est le modulo.n % 2 == 0est la façon la plus propre de tester sinest pair.
Python suit la priorité mathématique standard : ** lie plus fort que * et /, qui lient plus fort que + et -. Les parenthèses priment sur tout :
Utilise les parenthèses généreusement quand il y a le moindre doute. Elles ne coûtent rien et rendent l'intention évidente.
Opérateurs de comparaison
Six comparaisons, chacune renvoyant un booléen :
Python te permet d'enchaîner les comparaisons, ce qui est inhabituel et utile :
Ça se lit « age est au moins 18 et inférieur à 65 ». Sous le capot, c'est équivalent à 18 <= age and age < 65, mais ça se lit plus comme les maths.
Opérateurs logiques
Écrits comme des mots anglais, pas comme des symboles :
Deux détails à connaître :
Évaluation court-circuit. and s'arrête à la première valeur falsy ; or s'arrête à la première valeur truthy. Le côté droit n'est même pas évalué si le côté gauche a déjà décidé la réponse. Ça te permet de te protéger des erreurs en toute sécurité :
and/or renvoient la valeur, pas toujours True/False. Ils renvoient celui des opérandes qui a décidé le résultat :
Tu verras name = user_input or "anonymous" dans du vrai code — c'est un motif de valeur par défaut bâti sur ce comportement.
Opérateurs d'affectation
= affecte. Les formes composées combinent une opération avec une affectation :
Les formes composées marchent aussi pour les chaînes (s += "more") et les listes (lst += [4, 5]). Elles ne sont pas plus rapides que la forme complète ; elles sont juste plus courtes.
Appartenance : in et not in
Teste si une valeur apparaît dans un conteneur :
in fonctionne sur tout itérable — listes, tuples, ensembles, chaînes, dictionnaires et plus. Pour de grosses recherches, in sur une liste est en O(n) ; in sur un set ou dict est en O(1). Ça compte dès que tu vérifies l'appartenance beaucoup de fois.
Identité : is et is not
is vérifie si deux variables pointent vers le même objet en mémoire, pas juste vers des valeurs égales :
Presque toujours, tu veux ==. Le seul endroit où is brille vraiment, c'est pour vérifier contre None, True et False :
La convention de la communauté est ferme : is None, pas == None. Pareil pour is True (même si tu en as rarement besoin).
Opérateurs bit à bit (passe à la première lecture)
Python a aussi des opérateurs bit à bit — &, |, ^, ~, <<, >> — pour manipuler les bits individuels d'un entier. Ils sont utiles en cryptographie, en réseau bas niveau et dans certains algorithmes. Tu peux les ignorer sans risque à la première lecture.
L'opérateur walrus (:=)
Python 3.8 a ajouté :=, qui affecte et renvoie une valeur dans une seule expression. Utile dans des conditions où tu veux à la fois capturer et tester un résultat :
Sans le walrus, tu appellerais len(numbers) deux fois ou tu ajouterais une ligne supplémentaire. Ce n'est pas essentiel ; utilise-le quand ça réduit la répétition.
Antisèche de priorité des opérateurs
Du plus serré au plus lâche pour les opérateurs que tu utiliseras vraiment :
**— exposant*,/,//,%— multiplication et division+,-— addition et soustraction<,<=,>,>=,==,!=— comparaisonsnotandor
Dans le doute, mets des parenthèses. La clarté bat l'astuce.
Vers le contrôle de flux
Avec les opérateurs en poche, tu peux écrire des conditions. La page suivante, c'est if/elif/else — la construction qui laisse ton programme prendre un chemin ou un autre selon ce que lui disent les opérateurs.
Questions fréquentes
Quels sont les principaux types d'opérateurs en Python ?
Arithmétiques (+, -, *, /, //, %, **), comparaison (==, !=, <, <=, >, >=), logiques (and, or, not), affectation (=, +=, -=, …), appartenance (in, not in) et identité (is, is not).
Quelle est la différence entre == et is en Python ?
== vérifie si deux valeurs sont égales. is vérifie si deux variables désignent exactement le même objet en mémoire. Pour None, True et False, utilise is — ce sont des singletons. Pour tout le reste, == est presque toujours ce que tu veux.
Que fait l'opérateur % en Python ?
Pour les nombres, % est l'opérateur modulo — il renvoie le reste d'une division. 17 % 5 vaut 2. Pour les chaînes, c'est une syntaxe de formatage d'ancien style (comme "hello %s" % name), mais les f-strings l'ont largement remplacée.