Les opérateurs sont les outils de calcul de Python. Ce chapitre couvre les trois grandes familles : arithmétiques (pour les nombres), de comparaison (pour tester), logiques (pour combiner des conditions). On termine par les opérateurs d’affectation combinée, très courants au TOSA.
10.1 Les opérateurs arithmétiques
Python dispose des opérateurs mathématiques classiques, plus quelques ajouts utiles :
prix =100prix *=1.20# applique une majoration de 20%print(prix)
120.0
Pourquoi préférer x += 1 à x = x + 1 ?
Plus court : moins à taper, moins de risque de fautes.
Plus lisible : exprime clairement l’intention « ajouter à x ».
Plus rapide dans certains cas (surtout avec des listes).
C’est la norme en Python. Le TOSA teste souvent cette notation.
10.3 Les opérateurs de comparaison
Ces opérateurs renvoient toujours un booléen (True ou False).
Opérateur
Signification
Exemple
Résultat
==
Égal à
3 == 3
True
!=
Différent de
3 != 4
True
<
Strictement inférieur
3 < 5
True
>
Strictement supérieur
5 > 3
True
<=
Inférieur ou égal
3 <= 3
True
>=
Supérieur ou égal
3 >= 4
False
age =18print("Majeur ?", age >=18)print("Mineur ?", age <18)print("Pile 18 ?", age ==18)
Majeur ? True
Mineur ? False
Pile 18 ? True
= vs == : ne pas confondre !
= est l’affectation (donne une valeur à une variable).
== est la comparaison (teste si deux valeurs sont égales).
if age =18: # ❌ SyntaxErrorprint("Oui")
CellIn[9], line 1if age = 18: # ❌ SyntaxError
^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
age =18if age ==18: # ✅ Correctprint("Oui")
Oui
Comparaisons chaînées
Python permet d’écrire des comparaisons à la façon mathématique :
age =25# Python autorise 18 <= age < 65 (plus lisible)if18<= age <65:print("Adulte actif")
Adulte actif
C’est équivalent à age >= 18 and age < 65 mais bien plus lisible. Cette syntaxe est spécifique à Python — elle n’existe pas dans la plupart des autres langages.
10.4 Les opérateurs logiques
Ces opérateurs combinent des booléens :
Opérateur
Sens
Exemple
and
ET logique
True and False → False
or
OU logique
True or False → True
not
NON logique (inverse)
not True → False
Table de vérité :
print("and :")print(" T and T =", TrueandTrue)print(" T and F =", TrueandFalse)print(" F and F =", FalseandFalse)print("or :")print(" T or T =", TrueorTrue)print(" T or F =", TrueorFalse)print(" F or F =", FalseorFalse)print("not :")print(" not T =", notTrue)print(" not F =", notFalse)
and :
T and T = True
T and F = False
F and F = False
or :
T or T = True
T or F = True
F or F = False
not :
not T = False
not F = True
Usage typique :
age =25permis =Truepeut_conduire = age >=18and permisprint("Peut conduire :", peut_conduire)
Peut conduire : True
Court-circuit (lazy evaluation)
Important pour le TOSA : Python évalue les opérateurs and et or en court-circuit :
A and B : si A est False, B n’est même pas évalué (c’est déjà False).
A or B : si A est True, B n’est même pas évalué (c’est déjà True).
Exemple pratique : éviter une division par zéro.
x =0# Si x == 0, la deuxième partie N'EST PAS évaluée, donc pas de ZeroDivisionErrorif x !=0and10/ x >2:print("OK")else:print("x vaut zéro ou le quotient est petit")
x vaut zéro ou le quotient est petit
10.5 L’opérateur in
in teste si un élément appartient à une collection (liste, tuple, chaîne, ensemble, dictionnaire).
duree =3725heures = duree //3600# nombre d'heures complètesreste = duree %3600# secondes restantes après les heuresminutes = reste //60# nombre de minutes complètessecondes = reste %60# secondes finalesprint(heures, "h", minutes, "min", secondes, "s")
1 h 2 min 5 s
def decomposer(duree): heures = duree //3600 reste = duree %3600 minutes = reste //60 secondes = reste %60return heures, minutes, secondesfor d in [60, 3600, 3725, 86400]: h, m, s = decomposer(d)print(f"{d} s = {h} h {m} min {s} s")
60 s = 0 h 1 min 0 s
3600 s = 1 h 0 min 0 s
3725 s = 1 h 2 min 5 s
86400 s = 24 h 0 min 0 s
Les fonctions seront vues en détail en Partie 2.
À retenir
Points clés du chapitre
/ renvoie toujours un float, // renvoie un entier (troncature vers le bas).
% (modulo) donne le reste d’une division : très utile pour la parité et les cycles.
x += v est l’équivalent concis de x = x + v. À utiliser systématiquement.
Les comparaisons renvoient un booléen. Ne confondez pas = (affectation) et == (comparaison).
Python autorise les comparaisons chaînées : 18 <= age < 65.
and et or évaluent en court-circuit — pratique pour éviter des erreurs.
in teste l’appartenance à une collection : pratique et très testé au TOSA.