Opérations arithmétiques en Python

@joekakone

Joseph Konka @joekakone

03/03/2026 · 8 min

Explorez les 7 opérateurs arithmétiques fondamentaux de Python : addition, soustraction, multiplication, division réelle, division entière, modulo et exponentiation. Maîtrisez la précédence et les affectations augmentées.

Opérations arithmétiques en langage Python#

Le calcul numérique est au cœur de tout langage de programmation. Python excelle particulièrement dans ce domaine : il gère nativement des entiers de taille arbitraire sans risque de dépassement de capacité (overflow) et propose des opérateurs dédiés aux calculs scientifiques et financiers.


1. Les 7 opérateurs arithmétiques fondamentaux#

Considérons deux variables a = 17 et b = 5 :

Opération Symbole Syntaxe Exemple (17 et 5) Résultat Remarques
Addition + a + b 17 + 5 22 Concatène aussi les chaînes et listes
Soustraction - a - b 17 - 5 12 Utilisé aussi pour les opposés (-x)
Multiplication * a * b 17 * 5 85 Répète aussi les chaînes ("-" * 10)
Division réelle / a / b 17 / 5 3.4 Renvoie toujours un float
Division entière // a // b 17 // 5 3 Partie entière (troncature vers le bas)
Modulo % a % b 17 % 5 2 Reste de la division euclidienne
Exponentiation ** a ** b 2 ** 8 256 Élévation à la puissance (\(a^b\))
a = 17
b = 5

print("Division reelle   :", a / b)   # 3.4
print("Division entiere  :", a // b)  # 3
print("Reste (Modulo)    :", a % b)   # 2 (car 17 = 3 * 5 + 2)
print("Puissance         :", b ** 3)  # 125 (5 * 5 * 5)

[!NOTE] La fonction native divmod()
Si vous avez besoin simultanément du quotient entier et du reste, Python propose la fonction divmod(a, b) qui calcule les deux en une seule opération :

quotient, reste = divmod(17, 5)
print(quotient, reste)  # 3 2


2. Précédence et priorité des opérateurs (PEMDAS)#

Lorsque plusieurs opérateurs sont combinés au sein d'une même expression, Python évalue le calcul selon les règles mathématiques de priorité :

  1. Parenthèses : ( ... ) (priorité absolue)
  2. Exposants : ** (évalué de droite à gauche !)
  3. Multiplication, Division, Division entière et Modulo : *, /, //, %
  4. Addition et Soustraction : +, -
# Exemple d'ordre d'évaluation
calcul = 10 + 2 * 3 ** 2  # 10 + 2 * 9 -> 10 + 18 -> 28
print(calcul)

# Forcer la priorité avec des parenthèses
calcul_force = ((10 + 2) * 3) ** 2  # (12 * 3) ** 2 -> 36 ** 2 -> 1296
print(calcul_force)

3. Les opérateurs d'affectation augmentée#

Pour mettre à jour la valeur d'une variable en lui appliquant une opération arithmétique, Python propose une syntaxe compacte :

Opérateur augmenté Équivalence longue Description
x += 5 x = x + 5 Incrémente x de 5
x -= 2 x = x - 2 Décrémente x de 2
x *= 3 x = x * 3 Multiplie x par 3
x /= 2 x = x / 2 Divise x par 2
x //= 4 x = x // 4 Division entière par 4
x %= 10 x = x % 10 Modulo par 10
x **= 2 x = x ** 2 Élève x au carré

[!WARNING] Contrairement au langage C ou JavaScript, les opérateurs d'auto-incrémentation préfixés ou postfixés ++x et x++ n'existent pas en Python ! Utilisez toujours x += 1.


4. Fonctions mathématiques natives utiles#

Sans même importer de module externe, Python fournit des fonctions intégrées pour les calculs courants :

# 1. Valeur absolue
print(abs(-42.5))  # 42.5

# 2. Arrondi numérique
print(round(3.14159, 2))  # 3.14 (arrondi à 2 décimales)
print(round(127, -1))     # 130 (arrondi à la dizaine la plus proche)

# 3. Minimum et Maximum
notes = [14, 18, 9, 15]
print("Note minimale :", min(notes))  # 9
print("Note maximale :", max(notes))  # 18

# 4. Somme d'une séquence
print("Total :", sum(notes))          # 56

5. Attention critique sur la fonction eval()#

La fonction eval() permet d'interpréter dynamiquement une chaîne de caractères comme du code Python :

resultat = eval("2 + 3 * 4")
print(resultat)  # 14

[!CAUTION] Avertissement de cybersécurité :
Ne passez jamais une saisie utilisateur non vérifiée à la fonction eval() ! Un utilisateur malveillant pourrait taper __import__('os').system('rmdir /s /q C:\\') et détruire instantanément votre système d'exploitation. Pour évaluer des expressions mathématiques saisies par un utilisateur de manière sécurisée, utilisez plutôt le module standard ast.literal_eval ou une bibliothèque de parsing dédiée.


6. Défi d'application#

Écrivez un script nommé distributeur_monnaie.py qui prend en entrée un montant entier en euros (par exemple 187) et calcule le nombre optimal de billets de 50 €, 20 €, 10 € et pièces de 2 € et 1 € à rendre, en exploitant uniquement la division entière // et le modulo %.

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue