En programmation, il est fréquent de devoir manipuler des nombres, calculer des racines carrées, arrondir des valeurs ou encore travailler avec des constantes mathématiques comme π (pi). C’est là qu’intervient le module math
de Python, une boîte à outils ultra pratique pour gérer les calculs numériques sans se casser la tête.
Dans cet article, on va explorer les fonctionnalités les plus utiles du module math
, avec des exemples concrets pour chaque cas. Que vous soyez en train de bosser sur un projet de data science, un moteur de jeu ou une simple application nécessitant des calculs, ces fonctions vous feront gagner un temps précieux.
1. Importation du module math
#
Le module math
est inclus dans la bibliothèque standard de Python, donc pas besoin d’installation supplémentaire. Pour l’utiliser, il suffit de l’importer :
import math
Et voilà, vous êtes prêt à attaquer du lourd ! 🚀
2. Les Constantes Mathématiques #
Le module math
fournit plusieurs constantes très utiles :
import math
print("Pi :", math.pi) # 3.141592653589793
print("e :", math.e) # 2.718281828459045
print("Tau :", math.tau) # 6.283185307179586 (2 * π)
print("Infini :", math.inf) # float("inf")
print("NaN :", math.nan) # Not a Number
🔹 Pourquoi c’est utile ?
math.pi
etmath.e
sont omniprésents en mathématiques (exponentielles, cercles, logarithmes…).math.inf
est pratique pour représenter une valeur infinie sans se compliquer la vie.math.nan
est utile pour gérer des erreurs numériques (division par zéro, valeurs manquantes…).
3. Fonctions de Base #
Python propose déjà les opérations arithmétiques classiques (+
, -
, *
, /
, **
, %
). Mais le module math
fournit des versions optimisées et précises de certaines d’entre elles :
🔹 Racine carrée et puissances #
print(math.sqrt(25)) # 5.0
print(math.pow(2, 3)) # 8.0 (équivalent à 2 ** 3)
🔸 Différence entre pow()
et **
?
math.pow()
retourne toujours un float
, tandis que **
garde le type natif (int ou float).
🔹 Valeurs absolues et factorielle #
print(math.fabs(-10)) # 10.0 (toujours un float)
print(math.factorial(5)) # 120 (5! = 5 × 4 × 3 × 2 × 1)
🔹 Arrondi vers le haut ou le bas #
print(math.ceil(4.3)) # 5 (arrondi vers le haut)
print(math.floor(4.9)) # 4 (arrondi vers le bas)
4. Logarithmes et Exponentielles #
Les logarithmes et exponentielles sont très utilisés en sciences et en finance :
print(math.exp(2)) # e^2
print(math.log(10)) # Logarithme naturel (base e)
print(math.log10(100)) # Logarithme en base 10
print(math.log2(8)) # Logarithme en base 2
🔹 Pourquoi utiliser math.log()
plutôt que numpy.log()
?
Si vous travaillez avec de gros tableaux de nombres, numpy
sera plus efficace. Mais pour des calculs simples, math.log()
fait largement le taf.
5. Trigonométrie : Jouons avec les Angles #
Le module math
est également un couteau suisse pour tout ce qui touche à la trigonométrie :
print(math.sin(math.pi / 2)) # 1.0
print(math.cos(math.pi)) # -1.0
print(math.tan(math.pi / 4)) # 1.0
Les fonctions inverses existent aussi :
print(math.asin(1)) # Retourne pi/2
print(math.acos(-1)) # Retourne pi
print(math.atan(1)) # Retourne pi/4
🔹 Conversion entre radians et degrés #
Les fonctions trigonométriques utilisent les radians, mais on peut convertir facilement :
print(math.degrees(math.pi)) # 180.0
print(math.radians(90)) # 1.5707963267948966
6. Gestion des Nombres Flottants et Comparaisons #
Python peut parfois avoir du mal à gérer les comparaisons entre nombres flottants à cause des erreurs d’arrondi. math
propose des solutions :
print(math.isfinite(10)) # True
print(math.isinf(math.inf)) # True
print(math.isnan(math.nan)) # True
Et pour comparer correctement deux nombres flottants :
print(math.isclose(0.1 + 0.2, 0.3)) # True (avec une marge d’erreur)
7. Quelques Astuces et Applications Pratiques #
🔹 Générer des nombres aléatoires avec math
#
Si vous n’avez pas besoin d’un vrai générateur de nombres aléatoires (random
), vous pouvez utiliser :
import math
import random
angle = random.uniform(0, 2 * math.pi) # Angle aléatoire en radians
print(math.sin(angle)) # Valeur de sin(angle) aléatoire
🔹 Calculer l’hypoténuse sans prise de tête #
print(math.hypot(3, 4)) # 5.0 (évite d'écrire sqrt(x**2 + y**2))
🔹 Approximation de π avec la formule de Leibniz #
Si vous voulez impressionner votre prof de maths :
def approx_pi(n):
return 4 * sum((-1) ** k / (2 * k + 1) for k in range(n))
print(approx_pi(1000000)) # Approche la valeur de π
Conclusion #
Le module math
est un incontournable pour tout développeur qui manipule des nombres en Python. Il offre une multitude d’outils pour simplifier vos calculs et optimiser vos performances sans réinventer la roue. Que ce soit pour la trigonométrie, les logarithmes, les arrondis ou encore les comparaisons numériques, math
est là pour vous simplifier la vie.
🚀 Prochain défi ? Essayez d’écrire une fonction qui calcule la distance entre deux points dans un espace 3D en utilisant math.sqrt()
et math.hypot()
!
Allez, à vos claviers ! 😎