Les opérateurs en Python

31 Aug 2019 31 Aug 2019 71736 vues ESSADDOUKI Mostafa 9 min de lecture

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égorieOpérateursRôle
Arithmétiques+ - * / % // **Calculs mathématiques
Relationnels== != > < >= <=Comparaison de valeurs
Logiquesand or notCombinaison de conditions
Affectation= += -= *=Assignation de valeurs
Binaires& | ^ ~ >> <<Manipulation de bits
Spéciauxis is not in not inIdentité 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érateurNomDescriptionExemple (a=10, b=4)Résultat
+AdditionSomme de deux opérandesa + b14
-SoustractionDifférence de deux opérandesa - b6
*MultiplicationProduit de deux opérandesa * b40
/Division réelleQuotient réel (toujours float)a / b2.5
%ModuloReste de la division euclidiennea % b2
//Division entièreQuotient entier (arrondi vers −∞)a // b2
**PuissanceOpérande gauche élevé à la puissance droitea ** 2100

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}")   # puissance
Sortie
a + b  = 14
a - b  = 6
a * b  = 40
a / b  = 2.5
a % b  = 2
a // b = 2
a ** 2 = 100
Attention — / vs //
  • 10 / 42.5  (toujours un float)
  • 10 // 42  (entier, arrondi vers −∞)
  • -7 // 2-4  (⚠️ pas -3 ! arrondi vers −∞)
Astuce — Tester la parité avec %
n = 17
if n % 2 == 0:
    print(f"{n} est pair")
else:
    print(f"{n} est impair")   # 17 est impair

Opérateurs relationnels et logiques

Opérateurs relationnels

Les opérateurs relationnels comparent deux valeurs et retournent un booléen : True ou False.

OpérateurSignificationExempleRésultat
==Égal à5 == 5True
!=Différent de5 != 3True
>Supérieur à6 > 5True
<Inférieur à6 < 5False
>=Supérieur ou égal à5 >= 5True
<=Inférieur ou égal à4 <= 5True

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}")   # True
Sortie
a > b  : True
a >= b : True
a < b  : False
a <= b : False
a == b : False
a != b : True
Astuce — Comparaisons chaînéesPython permet d'enchaîner les comparaisons de façon naturelle, comme en mathématiques :
note = 15
print(0 <= note <= 20)   # True  ✅ style Python
print(0 <= note and note <= 20)   # équivalent mais moins lisible

Opérateurs logiques

Les opérateurs logiques combinent plusieurs conditions et retournent un booléen.

OpérateurSignificationRetourne True si…Exemple
andET logiquetoutes les conditions sont vraiesa > 0 and b > 0
orOU logiqueau moins une condition est vraiea > 0 or b > 0
notNON logiquela condition est faussenot (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)
Sortie
a > b and c == d : False
a > b or  c == d : True
not (a == b)     : True
not (a == c)     : False
Erreur fréquente — ! 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érateurExempleÉquivalent àCatégorie
=x = 5x = 5Base
+=x += 5x = x + 5Arithmétique
-=x -= 5x = x - 5Arithmétique
*=x *= 5x = x * 5Arithmétique
/=x /= 5x = x / 5Arithmétique
%=x %= 5x = x % 5Arithmétique
//=x //= 5x = x // 5Arithmétique
**=x **= 5x = x ** 5Arithmétique
&=x &= 5x = x & 5Binaire
|=x |= 5x = x | 5Binaire
^=x ^= 5x = x ^ 5Binaire
>>=x >>= 5x = x >> 5Binaire
<<=x <<= 5x = x << 5Binaire

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}")   # 64
Sortie
initial  : 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érateurNomRègleExempleRésultat décimalRésultat binaire
&ET bit à bit1 si les deux bits sont 1x & y00000 0000
|OU bit à bit1 si au moins un bit est 1x | y140000 1110
^XOR bit à bit1 si les bits sont différentsx ^ y140000 1110
~NON bit à bitInverse tous les bits~x-111111 0101
>>Décalage droitDéplace les bits vers la droitex >> 220000 0010
<<Décalage gaucheDéplace les bits vers la gauchex << 2400010 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 → 40
Sortie
x & y  = 0
x | y  = 14
x ^ y  = 14
~x     = -11
x >> 2 = 2
x << 2 = 40
Remarque — Décalage et puissances de 2 Un décalage de n bits vers la gauche revient à multiplier par 2n, et vers la droite à diviser par 2n(division entière) :
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

Définition — Identité 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érateurRetourne True si…Exemple
isLes deux variables réfèrent au même objeta is b
is notLes deux variables réfèrent à des objets différentsa 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}")  # True
Sortie
a == b  : True
a is b  : False
a is c  : True
a is not b : True
Attention — Ne pas confondre == 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

Définition — Appartenance 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érateurRetourne True si…Exemple
inLa valeur est présente dans la séquence5 in [1, 3, 5]True
not inLa valeur est absente de la séquence7 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é)
Sortie
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.