Lors de l’élaboration de vos programmes, vous aurez certainement des calculs à réaliser. Dans vos calculs, vous pourrez avoir besoin de certaines fonctions mathématiques. La librairie « math » vous aide une petite collection de fonctions mathématiques usuelles.

La première étape consiste à importer le module avec l’instruction « import ».
import math
PythonLes fonctions arithmétiques du module math
Le module intègre plusieurs fonctions arithmétiques qui peuvent être utile.
La fonction CEIL
Cette fonction renvoie le nombre entier supérieur direct. Par « ceil », il faut comprendre « plafond » d’où la valeur entière directement supérieure. Il faut donc faire attention au comportement de cette fonction avec les nombres négatifs. En effet, la valeur absolue du résultat de la fonction « ceil » pour une variable X et -X ne donnera pas la même valeur.
import math
math.ceil(3.2)
>>> 4
math.ceil(-3.2)
>>> -3
PythonLa fonction FLOOR
Cette fonction fonctionne à l’opposé de la fonction « ceil ». Par « floor », il faut comprendre « plancher ». La fonction renverra donc la valeur entière « pancher ». Ce sera la valeur entière directement inférieure.
math.floor(3.2)
>>> 3
math.floor(-3.2)
>>> -4
PythonLa fonction TRUNC
La fonction « trunc » permet de récupérer la partie entière d’un nombre sans chercher un arrondi supérieur ou inférieur.
math.trunc(3.2)
>>> 3
math.trunc(-3.2)
>>> -3
PythonLa fonction FACTORIAL
Cette fonction renvoie le résultat de l’opérateur factoriel. L’argument est forcément un nombre entier positif. Le résultat de l’opérateur factoriel N est la multiplication de tous les nombres entiers de 1 à N.
math.factorial(4) # 1 x 2 x 3 x 4 = 24
>>> 24
PythonLa fonction FSUM
La fonction « fsum » évite de perdre en précision lorsqu’on somme sur une liste de valeurs. Le delta n’est pas énorme mais cela peut engendrer des erreurs dans votre code. C’est donc important de l’avoir en tête.
liste=[.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]
sum(liste)
>>> 0.9999999999999999
math.fsum(liste)
>>> 1.0
sum(liste) == math.fsum(liste)
>>> False
PythonLa fonction GCD, plus grand commun diviseur
Cette fonction nous replonge dans nos cours de mathématiques du collège :). La fonction « gcd » renvoie le plus grand commun diviseur. C’est la plus grande valeur qui permet de diviser les deux nombres, sachant que le résultat doit être un nombre entier.
math.gcd(125,20)
>>> 5
PythonLa fonction ISCLOSE
math.isclose(a,b, rel_tol=1e-09, abs_tol = 0.0)
Nous pouvons nous trouver dans des situations où nous comparons des nombres qui ont des précisions différentes. Au lieu d’écrire une comparaison complexe sur plusieurs lignes, la fonction « isclose » permet de comparer deux valeurs de façon compacte. La fonction demande deux valeurs à comparer et les tolérances pour la comparaison.
a,b = 10, 10.1
math.isclose(a,b)
>>> False
math.isclose(a,b,rel_tol=0.05) # Tolérance relative à 5%
>>> True
math.isclose(a,b,abs_tol=0.01) # Tolérance absolue à 0.01
>>> False
PythonLa fonction ISNAN
Quand vous manipulez des données, vous aurez parfois besoin de contrôler l’information que vous utilisez. La fonction « isnan() » permet de savoir si la variable est un nombre ou non. « NaN » est l’acronymie de « Not a Number » ou « Pas un Nombre » en français :).
x, y = math.nan, 2.5
math.isnan(x)
>>> True
math.isnan(y)
>>> False
PythonFonctions logarithme et exponentielle du module math
Le module « math » permet d’utiliser la fonction exponentielle et logarithme. Il existe des fonctions prédéfinies pour les bases usuelles du logarithme mais il est possible de définir une base personnalisée.
math.exp(2)
>>> 7.38905609893065
math.log2(4) # logarithme de base 2
>>> 2.0
math.log10(100) # logarithme de base 10
>>> 2.0
math.log(27,3) # logarithme de base quelconque, ici 3
>>> 3.0
PythonIl y a aussi les fonctions « .pow() », « .sqrt », « .cbrt » qui permettent de calculer une valeur élevée à une puissance, la racine carrée et la racine cubique.
math.pow(3, 2) # 3 est élevé à la puissance 2 soit 9
>>> 9.0
math.sqrt(9.0) # racine carrée
>>> 3.0
math.cbrt(8) # racine cubique, à partir de la version 3.11 de Python
>>> 2
math.pow(8, 1/3) # équivalent à la racine cubique
>>> 2.0
math.pow(9, 1/2) # équivalent à la racine carrée
>>> 3.0
PythonLes fonctions trigonométriques
Le module « math » propose également toutes les fonctions trigonométriques usuelles : sinus, cosinus, tangente …. La valeur donnée à la fonction doit être en radians.
math.cos(math.pi/3)
>>> 0.5000000000000001
math.sinus(math.pi/2)
>>> 1.0
math.tan(math.pi/4)
>>> 0.9999999999999999
PythonLes fonctions inverses sont bien entendues disponibles : math.atan(), math.acos(), math.asin(). Les fonctions retournent une valeur d’angle en radians.
math.atan(x)
math.acos(x)
math.asin(x)
PythonLes fonctions hyperboliques sont elle aussi disponible : math.tanh(), math.cosh(), math.sinh(). Tout comme les fonctions inverses : math.atanh(), math.acosh(), math.asinh().
math.cosh(x)
math.sinh(x)
math.tanh(x)
math.acosh(x)
math.asinh(x)
math.atanh(x)
PythonPour finir, il y a la fonction « .atan2() » qui elle permet de récupérer le quadrant du cercle dans lequel on se trouve.
X1, Y1 = 0.5, math.sqrt(3)/2
X2, Y2 = -0.5, -math.sqrt(3)/2
T1 = Y1 / X1
T2 = Y2 / X2
T1 == T2
>>> True
math.atan2(Y1,X1)
>>> 1.0471975511965976
math.atan2(Y2,X2)
>>> -2.0943951023931957
math.atan(T1)
>>> 1.0471975511965976
math.atan(T2)
>>> 1.0471975511965976
PythonDans le cas 1, on a un angle de 60° alors que dans le cas 2 on est à l’opposé, soit -120°.

Conversion angulaire et calcul de distance
Le module « math » vous donne également la possibilité de convertir vos angles de radians en degrés et inversement.
X2, Y2 = -0.5, -math.sqrt(3)/2
angle_rad = math.atan2(Y2,X2)
math.degrees(angle_rad)
>>> -120.00000000000001
math.radians(-120.)
>>> -2.0943951023931953
PythonEt pour terminer sur cette section, voici deux fonctions qui vous renverront un calcul de distance. La première fonction « math.hypot » renvoie le calcul de la norme euclidienne des deux valeurs a et b données comme arguments. La norme euclidienne représente l’hypoténuse d’un triangle rectangle de longueur a et b. Ensuite, la fonction « math.dist » renvoie la distance entre deux points.
math.hypot(3.,4.)
>>> 5.0
pt1 = [10.,5.,1.]
pt2 = [100.,50.,10.]
math.dist(pt1,pt2)
>>> 101.02474944289642
PythonLes constantes du module math
Enfin, voici les constantes mathématiques qui peuvent vous servir dans vos programmes. On retrouve la constante Pi, la valeur e qui est équivalente à exponentielle(1), une valeur réelle correspondant à l’infini et la valeur flottante de « NaN ».
math.pi # à la précision disponible
>>> 3.141592653589793
math.e # à la précision disponible
>>> 2.718281828459045
math.inf # pour un infini côté négatif -math.inf
>>> inf
math.nan
>>> nan
PythonEt pour finir
Vous avez pu voir les principales fonctions du module « math » en python. Ce n’est pas une liste exhaustive, d’autres fonctions existent et sont décrites dans la documentation en ligne. Egalement, vous trouverez plus de détails sur les fonctions présentées si vous en avez besoin.
Merci de m’avoir lu, n’hésitez pas à me laisser un commentaire, j’y répondrai avec plaisir,
A bientôt,
Benjamin