Opérateurs en Python
Un opérateur est un symbole spécial qui effectue une opération sur une ou plusieurs valeurs appelées opérandes. Python propose six catégories d'opérateurs :
| Catégorie | Opérateurs | Rôle |
|---|---|---|
| Arithmétiques | + - * / % // ** | Calculs mathématiques |
| Relationnels | == != > < >= <= | Comparaison de valeurs |
| Logiques | and or not | Combinaison de conditions |
| Affectation | = += -= *= … | Assignation de valeurs |
| Binaires | & | ^ ~ >> << | Manipulation de bits |
| Spéciaux | is is not in not in | Identité et appartenance |
Opérateurs arithmétiques
Les opérateurs arithmétiques effectuent des calculs mathématiques sur des opérandes numériques (int ou float).
| Opérateur | Nom | Description | Exemple (a=10, b=4) | Résultat |
|---|---|---|---|---|
+ | Addition | Somme de deux opérandes | a + b | 14 |
- | Soustraction | Différence de deux opérandes | a - b | 6 |
* | Multiplication | Produit de deux opérandes | a * b | 40 |
/ | Division réelle | Quotient réel (toujours float) | a / b | 2.5 |
% | Modulo | Reste de la division euclidienne | a % b | 2 |
// | Division entière | Quotient entier (arrondi vers −∞) | a // b | 2 |
** | Puissance | Opérande gauche élevé à la puissance droite | a ** 2 | 100 |
Exemple n°1 — Opérateurs arithmétiques
a = 10
b = 4
print(f"a + b = {a + b}") # addition
print(f"a - b = {a - b}") # soustraction
print(f"a * b = {a * b}") # multiplication
print(f"a / b = {a / b}") # division réelle
print(f"a % b = {a % b}") # modulo
print(f"a // b = {a // b}") # division entière
print(f"a ** 2 = {a ** 2}") # puissancea + b = 14 a - b = 6 a * b = 40 a / b = 2.5 a % b = 2 a // b = 2 a ** 2 = 100
/ vs //10 / 4→2.5(toujours unfloat)10 // 4→2(entier, arrondi vers −∞)-7 // 2→-4(⚠️ pas-3! arrondi vers −∞)
%n = 17
if n % 2 == 0:
print(f"{n} est pair")
else:
print(f"{n} est impair") # 17 est impairOpérateurs relationnels et logiques
Opérateurs relationnels
Les opérateurs relationnels comparent deux valeurs et retournent un booléen : True ou False.
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== | Égal à | 5 == 5 | True |
!= | Différent de | 5 != 3 | True |
> | Supérieur à | 6 > 5 | True |
< | Inférieur à | 6 < 5 | False |
>= | Supérieur ou égal à | 5 >= 5 | True |
<= | Inférieur ou égal à | 4 <= 5 | True |
Exemple n°2 — Opérateurs relationnels
a, b = 10, 4
print(f"a > b : {a > b}") # True
print(f"a >= b : {a >= b}") # True
print(f"a < b : {a < b}") # False
print(f"a <= b : {a <= b}") # False
print(f"a == b : {a == b}") # False
print(f"a != b : {a != b}") # Truea > b : True a >= b : True a < b : False a <= b : False a == b : False a != b : True
note = 15
print(0 <= note <= 20) # True ✅ style Python
print(0 <= note and note <= 20) # équivalent mais moins lisibleOpérateurs logiques
Les opérateurs logiques combinent plusieurs conditions et retournent un booléen.
| Opérateur | Signification | Retourne True si… | Exemple |
|---|---|---|---|
and | ET logique | toutes les conditions sont vraies | a > 0 and b > 0 |
or | OU logique | au moins une condition est vraie | a > 0 or b > 0 |
not | NON logique | la condition est fausse | not (a == b) |
Exemple n°3 — Opérateurs logiques
a, b, c, d = 10, 4, 10, 20
# ET logique : les deux conditions doivent être vraies
print(f"a > b and c == d : {a > b and c == d}") # False (c != d)
# OU logique : au moins une condition vraie suffit
print(f"a > b or c == d : {a > b or c == d}") # True (a > b est vrai)
# NON logique : inverse la condition
print(f"not (a == b) : {not (a == b)}") # True (a != b)
print(f"not (a == c) : {not (a == c)}") # False (a == c est vrai)a > b and c == d : False a > b or c == d : True not (a == b) : True not (a == c) : False
! n'existe pas en Python En C ou Java, la négation s'écrit !a. En Python, ! seul est une erreur de syntaxe. Il faut utiliser le mot-clé not:a = 10
if !a: # ❌ SyntaxError en Python !
print("zéro")
if not a: # ✅ correct
print("zéro")Opérateurs d'affectation
Les opérateurs d'affectation combinent une opération arithmétique ou binaire avec l'affectation. Ils permettent d'écrire du code plus concis.
| Opérateur | Exemple | Équivalent à | Catégorie |
|---|---|---|---|
= | x = 5 | x = 5 | Base |
+= | x += 5 | x = x + 5 | Arithmétique |
-= | x -= 5 | x = x - 5 | Arithmétique |
*= | x *= 5 | x = x * 5 | Arithmétique |
/= | x /= 5 | x = x / 5 | Arithmétique |
%= | x %= 5 | x = x % 5 | Arithmétique |
//= | x //= 5 | x = x // 5 | Arithmétique |
**= | x **= 5 | x = x ** 5 | Arithmétique |
&= | x &= 5 | x = x & 5 | Binaire |
|= | x |= 5 | x = x | 5 | Binaire |
^= | x ^= 5 | x = x ^ 5 | Binaire |
>>= | x >>= 5 | x = x >> 5 | Binaire |
<<= | x <<= 5 | x = x << 5 | Binaire |
Exemple n°4 — Opérateurs d'affectation composés
x = 10
print(f"initial : x = {x}")
x += 5; print(f"x += 5 : x = {x}") # 15
x -= 3; print(f"x -= 3 : x = {x}") # 12
x *= 2; print(f"x *= 2 : x = {x}") # 24
x //= 5; print(f"x //= 5 : x = {x}") # 4
x **= 3; print(f"x **= 3 : x = {x}") # 64initial : x = 10 x += 5 : x = 15 x -= 3 : x = 12 x *= 2 : x = 24 x //= 5 : x = 4 x **= 3 : x = 64
Opérateurs binaires (bit à bit)
Les opérateurs binaires travaillent directement sur la représentation binaire des entiers, bit par bit. Soit x = 10 (0000 1010) et y = 4 (0000 0100).
| Opérateur | Nom | Règle | Exemple | Résultat décimal | Résultat binaire |
|---|---|---|---|---|---|
& | ET bit à bit | 1 si les deux bits sont 1 | x & y | 0 | 0000 0000 |
| | OU bit à bit | 1 si au moins un bit est 1 | x | y | 14 | 0000 1110 |
^ | XOR bit à bit | 1 si les bits sont différents | x ^ y | 14 | 0000 1110 |
~ | NON bit à bit | Inverse tous les bits | ~x | -11 | 1111 0101 |
>> | Décalage droit | Déplace les bits vers la droite | x >> 2 | 2 | 0000 0010 |
<< | Décalage gauche | Déplace les bits vers la gauche | x << 2 | 40 | 0010 1000 |
Exemple n°5 — Opérateurs binaires
x, y = 10, 4 # 0000 1010 et 0000 0100
print(f"x & y = {x & y}") # ET → 0
print(f"x | y = {x | y}") # OU → 14
print(f"x ^ y = {x ^ y}") # XOR → 14
print(f"~x = {~x}") # NON → -11
print(f"x >> 2 = {x >> 2}") # décalage droit → 2
print(f"x << 2 = {x << 2}") # décalage gauche → 40x & y = 0 x | y = 14 x ^ y = 14 ~x = -11 x >> 2 = 2 x << 2 = 40
print(10 << 1) # 20 = 10 × 2¹
print(10 << 2) # 40 = 10 × 2²
print(10 >> 1) # 5 = 10 // 2¹
print(10 >> 2) # 2 = 10 // 2²Opérateurs spéciaux
Opérateurs d'identité — is / is not
is et is not vérifient si deux variables pointent vers le même objet en mémoire (même adresse), pas si elles ont la même valeur. Deux variables égales (==) ne sont pas nécessairement identiques (is).| Opérateur | Retourne True si… | Exemple |
|---|---|---|
is | Les deux variables réfèrent au même objet | a is b |
is not | Les deux variables réfèrent à des objets différents | a is not b |
Exemple n°6 — is vs ==
a = [1, 2, 3]
b = [1, 2, 3] # même contenu, objet différent
c = a # c pointe vers le même objet que a
print(f"a == b : {a == b}") # True — même valeur
print(f"a is b : {a is b}") # False — objets différents !
print(f"a is c : {a is c}") # True — même objet en mémoire
print(f"a is not b : {a is not b}") # Truea == b : True a is b : False a is c : True a is not b : True
== et is Utiliser is pour comparer des valeurs est une erreur fréquente. Réserver is uniquement pour tester l'identité avec None, True ou False:x = None
if x is None: # ✅ usage correct de is
print("x est None")
if x == None: # ⚠️ fonctionne mais déconseillé (PEP 8)Opérateurs d'appartenance — in / not in
in et not in testent si une valeur est présente dans une séquence (liste, tuple, chaîne, ensemble, dictionnaire). Pour un dictionnaire, seules les clés sont testées.| Opérateur | Retourne True si… | Exemple |
|---|---|---|
in | La valeur est présente dans la séquence | 5 in [1, 3, 5] → True |
not in | La valeur est absente de la séquence | 7 not in [1, 3, 5] → True |
Exemple n°7 — Opérateurs d'appartenance
villes = ['Meknès', 'Rabat', 'Casablanca']
message = "Bonjour Mostafa"
notes = {'maths': 18, 'info': 20}
# Liste
print('Rabat' in villes) # True
print('Fès' not in villes) # True
# Chaîne
print('Mostafa' in message) # True
print('Bonjour' not in message) # False
# Dictionnaire — teste les clés uniquement
print('info' in notes) # True
print(20 in notes) # False (20 est une valeur, pas une clé)True True True False True False
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.