SunuLab
Notre savoir
CoursDébutant11 min de lecture

Opérateurs et expressions

Calculer avec Python : division entière, modulo, priorités, et la logique booléenne

§1.Une expression, c'est un calcul qui a une valeur

2 + 3 est une EXPRESSION : Python l'évalue et obtient la valeur 5. prix * 1.2 en est une aussi, tout comme age >= 18 — sauf que celle-ci vaut True ou False.

Tout ce chapitre consiste à enrichir ta boîte à outils d'expressions. Ce sont les briques de tous les programmes que tu écriras.

§2.Les opérateurs arithmétiques

OpérateurNomExempleRésultat
+addition7 + 29
-soustraction7 - 25
*multiplication7 * 214
/division7 / 23.5 (toujours un float)
//division entière7 // 23 (on jette la partie décimale)
%modulo (le reste)7 % 21
**puissance7 ** 249

On n'écrit jamais 2x ni xy : la multiplication s'écrit toujours explicitement, 2 * x et x * y.

§3.// et % : le couple le plus utile de tout Python

Ces deux-là paraissent anecdotiques et se révèlent partout. Ils viennent de la division posée que tu faisais à l'école primaire : 17 divisé par 5, ça fait 3 et il reste 2.

Le // te donne le QUOTIENT (3), le % te donne le RESTE (2). Ensemble, ils décomposent un nombre.

Le modulo répond aussi à une question qu'on se pose sans arrêt : « est-ce divisible ? ». Si n % k vaut 0, alors n est divisible par k. C'est comme ça qu'on teste la parité, qu'on trouve les nombres premiers, qu'on détecte les années bissextiles.

Décomposer avec // et %
python
total = 3725 # un nombre de secondes
print(total // 3600) # heures
print(total % 3600 // 60) # minutes
print(total % 60) # secondes
print(10 % 2) # 0 : 10 est pair
print(7 % 2) # 1 : 7 est impair
Résultat : 1 2 5 0 1

3725 secondes font 1 heure, 2 minutes et 5 secondes. Le % 3600 enlève les heures déjà comptées, le // 60 convertit le reste en minutes. Ce schéma sert pour les durées, la monnaie, les conversions d'unités.

Explore // et %
Chargement de l'éditeur Python…

§7.Les priorités

Python applique les mêmes règles qu'en mathématiques. La puissance d'abord, puis la multiplication et les divisions, puis l'addition et la soustraction. À priorité égale, on évalue de gauche à droite.

Et comme en maths, les parenthèses passent avant tout. Dans le doute, mets-en : personne ne t'a jamais reproché un code trop lisible.

Les parenthèses changent tout
python
print(2 + 3 * 4) # la multiplication d'abord
print((2 + 3) * 4) # les parenthèses d'abord
moyenne_fausse = 10 + 12 + 14 / 3
moyenne_juste = (10 + 12 + 14) / 3
print(moyenne_fausse)
print(moyenne_juste)
Résultat : 14 20 26.666666666666668 12.0

L'oubli de parenthèses dans un calcul de moyenne est une erreur classique — et silencieuse : le programme ne plante pas, il donne juste un résultat faux. C'est le pire type de bug.

§9.Les raccourcis d'affectation

x += 5
Raccourci pour x = x + 5. Il existe aussi -=, *=, /=, //=, %= et **=.
Exemple. compteur += 1 est la façon standard d'incrémenter.
Pas de x++ en Python
D'autres langages ont un x++ pour ajouter 1. Python ne l'a pas : on écrit toujours x += 1. Si tu écris x++, tu obtiens une SyntaxError.

§10.Comparer : les expressions booléennes

Comparer deux valeurs produit un booléen, c'est-à-dire True ou False. Ces expressions sont le carburant des conditions du prochain chapitre.

Attention à la distinction la plus importante du langage : un seul = AFFECTE une valeur, deux == COMPARENT. Les confondre est l'erreur de syntaxe la plus fréquente chez les débutants.

§11.Les opérateurs de comparaison

OpérateurSignificationExempleValeur
==est égal à5 == 5True
!=est différent de5 != 3True
<est inférieur à3 < 5True
>est supérieur à3 > 5False
<=inférieur ou égal5 <= 5True
>=supérieur ou égal3 >= 5False

§12.Combiner des conditions

and
Vrai seulement si les DEUX côtés sont vrais.
Exemple. age >= 16 and age <= 18 — être entre 16 et 18 ans.
or
Vrai si AU MOINS UN des deux côtés est vrai.
Exemple. jour == "samedi" or jour == "dimanche" — c'est le week-end.
not
Inverse la valeur : not True vaut False.
Exemple. not (age >= 18) est équivalent à age < 18.
Une particularité élégante de Python
python
age = 17
print(age >= 16 and age <= 18)
print(16 <= age <= 18) # écriture enchaînée, propre à Python
print(age % 2 == 0) # est-il pair ?
print(not (age % 2 == 0)) # est-il impair ?
Résultat : True True False True

L'écriture 16 <= age <= 18 se lit exactement comme en mathématiques. Très peu de langages l'autorisent — profite-en, c'est bien plus lisible que la version avec and.

Teste tes expressions

Un booléen est une valeur comme une autre : on peut l'afficher, le stocker dans une variable.

Chargement de l'éditeur Python…

À retenir

  • // donne le quotient entier, % donne le reste — le couple qui décompose durées, monnaie et divisibilité.
  • n % k == 0 signifie « n est divisible par k » : c'est le test de base de la parité et de la primalité.
  • Les priorités sont celles des maths ; une parenthèse oubliée donne un résultat faux SANS erreur.
  • = affecte, == compare. C'est la confusion la plus fréquente du débutant.
  • and, or et not combinent les conditions ; Python autorise aussi 16 <= age <= 18.
  • x += 1 pour incrémenter — x++ n'existe pas en Python.
  • Ne teste jamais l'égalité stricte entre deux nombres à virgule.
Mots-clésopérateurmodulodivision entièreprioritébooléencomparaisonandornot