
Que vous soyez débutant en Python ou développeur confirmé souhaitant affiner votre maîtrise de ce langage, les opérateurs sont un passage obligé. Ces symboles ou mots-clés permettent d’effectuer des calculs, de comparer des valeurs, d’assigner des données à des variables ou encore de construire des expressions logiques complexes. Ils sont au cœur de nombreuses instructions Python.
Comprendre les opérateurs et bien les utiliser, c’est non seulement gagner en lisibilité et en efficacité, mais aussi éviter des erreurs logiques fréquentes dans les scripts et les applications. Python, avec sa syntaxe claire et concise, offre une large palette d’opérateurs simples à manipuler, à condition d’en connaître les subtilités.
Quels sont les opérateurs en Python ? Comment les utiliser ? Freelance-Informatique vous propose un guide complet pour parfaire votre connaissance de ce langage de programmation.
Un opérateur est un symbole ou un mot-clé qui permet d’effectuer une opération sur une ou plusieurs valeurs, appelées opérandes. En Python, les opérateurs sont omniprésents : ils servent à additionner des nombres, à comparer des valeurs, à combiner des conditions logiques ou à affecter des données à des variables.
Par exemple :
x = 5 + 3
Ici, + est un opérateur arithmétique qui additionne les deux opérandes 5 et 3, et = est un opérateur d’affectation qui stocke le résultat dans la variable x.
Les opérateurs sont donc des éléments fondamentaux pour construire des instructions et manipuler des structures de données.
Python propose plusieurs catégories d’opérateurs, chacune répondant à des besoins spécifiques :
Chaque catégorie d’opérateurs joue un rôle crucial dans l’écriture d’un programme fluide, performant et lisible. Maîtriser leur usage permet de mieux comprendre le comportement du code et d'éviter des bugs logiques courants.
Les opérateurs arithmétiques permettent d’effectuer des opérations mathématiques de base, telles que des additions, des soustractions ou des multiplications. Ces opérateurs s’utilisent aussi bien avec des nombres entiers (int) qu’avec des nombres décimaux (float).
| Opérateur | Nom | Exemple | Résultat |
|---|---|---|---|
| + | Addition | 3 + 2 | 5 |
| - | Soustraction | 5 - 1 | 4 |
| * | Multiplication | 4 * 2 | 8 |
| / | Division flottante | 7 / 2 | 3.5 |
| // | Division entière | 7 // 2 | 3 |
| % | Modulo (reste) | 7 % 2 | 1 |
| ** | Exponentiation | 2 ** 3 | 8 |
Les opérateurs de comparaison sont aussi appelés opérateurs relationnels. Ils permettent de comparer deux valeurs et renvoient un résultat booléen, c’est-à-dire une valeur qui ne peut être que vraie (True) ou fausse (False). Ces opérateurs sont notamment utilisés dans les structures conditionnelles.
| Opérateur | Signification | Exemple |
|---|---|---|
| == | Égal à | a == b |
| != | Différent de | a != b |
| > | Supérieur à | a > b |
| < | Inférieur à | a < b |
| >= | Supérieur ou égal à | a >= b |
| <= | Inférieur ou égal à | a <= b |
Attention ! L’opérateur d’égalité== ne doit pas être confondu avec l’opérateur d’affectation=, qui permet d’affecter une valeur à une variable.
Les opérateurs logiques permettent de combiner deux conditions. Là encore, le résultat renvoyé est un booléen.
| Opérateur | Fonction | Exemple |
|---|---|---|
| and | Renvoie True si les deux opérandes sont True | a > 2 and a < 10 |
| or | Renvoie True si un des deux opérandes est True | a < 2 or a > 10 |
| not | Renvoie l’inverse de son opérande (True si False, et inversement) | not a > 10 équivaut à a <= 10 |
Les opérateurs d’affectation permettent d’affecter une valeur à une variable ou de modifier la valeur qu’elle contient en appliquant une opération.
Une variable est un nom donné à une valeur stockée en mémoire. Elle permet de conserver et de manipuler des données tout au long d’un programme. On peut imaginer une variable comme une boîte étiquetée : l’étiquette est le nom de la variable et le contenu de la boîte est la valeur qu’elle contient. On peut changer cette valeur à tout moment dans le programme.
| Opérateur | Fonction | Exemple |
|---|---|---|
| = | Affectation simple | a = 5 |
| += | Ajoute et assigne | a += 3 équivaut à a = a + 3 |
| -= | Soustrait et assigne | a -= 2 équivaut à a = a - 2 |
| *= | Multiplie et assigne | a *= 4 équivaut à a = a * 4 |
| /= | Divise et assigne (résultat float) | a /= 2 équivaut à a = a / 2 |
| //= | Divise et assigne (résultat int) | a //= 2 équivaut à a = a // 2 |
| %= | Modulo et assigne | a %= 3 équivaut à a = a % 3 |
| **= | Exposant et assigne | a **= 2 équivaut à a = a ** 2 |
Les opérateurs d'identité permettent de tester si deux objets sont exactement les mêmes en mémoire. Le résultat renvoyé est un booléen.
| Opérateur | Fonction | Exemple |
|---|---|---|
| is | True si l’objet est le même | a is b |
| is not | True si les objets sont différents | a is not b |
Attention à ne pas confondre l’opérateur ==, qui teste l’égalité de valeur, et is, qui teste l’identité mémoire.
Par exemple :
a = [1, 2, 3]
b = [1, 2, 3]
c = a
a et b ont le même contenu.
a == b renvoie donc True.
Même si a et b ont le même contenu, ce sont deux objets différents.
a is b renvoie donc False.
c et a pointent vers le même objet.
c is a renvoie donc True.
Les opérateurs d’appartenance servent à vérifier si une valeur est présente dans une structure comme une liste, une chaîne de caractères ou un dictionnaire. Le résultat est un booléen.
| Opérateur | Fonction | Exemple |
|---|---|---|
| in | True si l’élément est dans la séquence | “banane” in ["pomme", "banane", "orange"] → True |
| not in | True si l’élément n’est pas dans la séquence | 3 not in [1, 2, 4] → True |
Moins fréquents dans les usages courants de Python, les opérateurs binaires, ou opérateurs bitwise, permettent de manipuler directement les bits.
Un bit, contraction de binary digit, ne peut prendre que deux valeurs : 0 ou 1. Chaque nombre est représenté par une séquence de bits, et les opérateurs binaires permettent d’agir directement sur ces séquences. Ils sont utiles en algorithmique, en cryptographie ou pour la conception de systèmes embarqués.
| Opérateur | Fonction |
|---|---|
| & | and binaire |
| | | or binaire |
| ^ | or exclusif |
| ~ | not binaire |
| << | Décalage des bits vers la gauche |
| >> | Décalage des bits vers la droite |
Lorsque plusieurs opérations apparaissent dans une même expression en Python, elles ne sont pas évaluées dans l’ordre où elles sont écrites, mais selon des règles de priorité définies. Ces règles permettent d’interpréter correctement les expressions complexes, sans avoir à multiplier les parenthèses. Elles sont similaires à celles enseignées en mathématiques.
Par exemple :
a = 3 + 4 * 2
Sans connaître les règles de priorité, on pourrait croire que l’addition 3 + 4 = 7 est effectuée dans un premier temps, puis la multiplication 7 * 2 = 14. Mais en réalité, la multiplication a une priorité plus haute que l’addition, donc l’opération 4 * 2 = 8 est effectuée en premier, puis on ajoute 3, pour obtenir un résultat final de 11.
Voici un résumé des règles de priorité :
| Priorité | Type d’opérateur | Exemple |
|---|---|---|
| 1 | Parenthèses | (a + b) * c |
| 2 | Exponentiation | a ** b |
| 3 | Multiplication, division, modulo | a * b a / b a % b |
| 4 | Addition et soustraction | a + b a - b |
Il existe un moyen mnémotechnique pour mémoriser ces priorités : l’acronyme PEMDAS, pour Parenthèses, Exponentiation, Multiplication, Division, Addition et Soustraction.
En Python, la surcharge de l’opérateur, ou operator overloading, permet de redéfinir le comportement des opérateurs classiques pour des objets personnalisés. Cela signifie qu’un même symbole peut effectuer des actions différentes selon le type d’objets qu’il manipule.
Par exemple, supposons qu’une classe Student représente les élèves d’un lycée par leur nom et leur taille. Une classe est un modèle qui sert à créer des objets. Elle regroupe des données, ou attributs, et des comportements, ou méthodes, liés à un même concept. Une instance est un objet concret créé à partir d’une classe.
On crée deux instances de la classe Student, correspondant à Caroline, qui mesure 165 cm, et Thibault, qui mesure 182 cm.
class Student:
def __init__(self, name, height):
self.name = name
self.height = height
caroline = Student("Caroline", 165)
thibault = Student("Thibault", 182)
Si on utilise l’opérateur de comparaison < sur ces deux instances de la classe Student pour comparer ces deux élèves en matière de taille, une erreur nous sera renvoyée, car cet opérateur ne peut pas comparer deux objets de la classe Student.
Grâce à la surcharge de l’opérateur, il est possible de définir le comportement de cet opérateur lorsqu’il est appelé sur des objets de la classe Student. Cela est possible grâce à la méthode __lt__(self, other). Ainsi, en définissant certaines méthodes dans une classe, on peut indiquer à Python comment un opérateur doit se comporter pour un certain type d’objet.
La surcharge de l’opérateur est obtenue grâce à une méthode spéciale indiquée dans la définition de la classe. Voici quelques-unes des méthodes spéciales les plus courantes :
| Opérateur | Méthode spéciale | Usage |
|---|---|---|
| + | __add__(self, other) | Addition |
| - | __sub__(self, other) | Soustraction |
| * | __mul__(self, other) | Multiplication |
| == | __eq__(self, other) | Égalité |
| != | __ne__(self, other) | Différence |
| < | __lt__(self, other) | Inférieur à |
| > | __gt__(self, other) | Supérieur à |
Python propose plusieurs types d’opérateurs pour effectuer un calcul, attribuer une valeur à une variable et réaliser une comparaison ou une action logique :
Pour apprendre Python, plusieurs ressources fiables sont disponibles en ligne, afin d’alterner théorie et pratique :
Oui, Python est un excellent choix pour se lancer en tant qu'indépendant. Populaire dans les secteurs du web, de la data, de l’intelligence artificielle ou de l’automatisation, ce langage polyvalent est très utilisé par les métiers du développement.
Les entreprises peuvent faire appel à un expert Python dans le cadre d’une mission freelance. Création d’une API (Application Programming Interface), analyse de données, développement de scripts : en s’inscrivant sur une plateforme freelance comme Freelance-Informatique, un spécialiste en Python peut réaliser des tâches variées pour ses clients.