Utilisation de bibliothèques
Introduction
Vous n'avez pas à tout réécrire vous-même. Calcul d'une racine carrée, tirage aléatoire, moyenne d'une liste, manipulation d'un fichier : toutes ces opérations existent déjà, prêtes à l'emploi, dans la bibliothèque standard de Python — installée d'office. Apprendre à utiliser une bibliothèque, c'est apprendre à lire sa documentation et à mobiliser ses fonctions avec la bonne syntaxe d'import.
L'objectif n'est pas de connaître toutes les bibliothèques par cœur — il y en a des centaines — mais de savoir lire une doc et importer ce dont on a besoin.
Importer un module
Un module est un fichier Python qui regroupe des fonctions et des constantes liées à un thème (mathématiques, hasard, statistiques, dates…). Pour utiliser un module, il faut d'abord l'importer.
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793
L'instruction import math rend disponible l'objet math, qu'on utilise
ensuite avec la notation point : math.sqrt, math.pi.
Trois formes d'import
# Forme 1 : import du module entier
import math
math.sqrt(16)
# Forme 2 : import d'éléments précis
from math import sqrt, pi
sqrt(16)
print(pi)
# Forme 3 : import avec alias
import math as m
m.sqrt(16)
| Forme | Avantage | Inconvénient |
|---|---|---|
import math | Origine claire : math.sqrt | Un peu plus verbeux |
from math import sqrt | Plus court : sqrt(16) | Conflit possible avec un autre sqrt |
import math as m | Très court | Lisibilité dépend de l'alias |
import math à from math import *. Le
second importe tout d'un seul coup et pollue l'espace de noms — vous
ne savez plus d'où vient une fonction.Quel import permet d'écrire directement pi (sans préfixe) dans le code ?
Lire une documentation
Toute fonction d'une bibliothèque a trois niveaux de doc accessibles sans quitter Python :
import math
help(math.sqrt)
print(math.sqrt.__doc__)
Et bien sûr la documentation officielle en ligne : docs.python.org/fr/3/library/.
Sortie (extrait) :
Help on built-in function factorial in module math:
factorial(n, /)
Find n!.
Quand vous découvrez une fonction, posez-vous quatre questions :
- Quel est son nom complet (module + fonction) ?
- Quels paramètres prend-elle ?
- Que retourne-t-elle ?
- Y a-t-il une précondition sur les arguments ?
Le module math
Le module math fournit les fonctions et constantes mathématiques usuelles.
| Fonction / constante | Rôle |
|---|---|
math.pi | Constante |
math.e | Constante |
math.sqrt(x) | Racine carrée de |
math.floor(x) | Partie entière par défaut |
math.ceil(x) | Partie entière par excès |
math.factorial(n) | pour un entier |
math.log(x) | Logarithme naturel de |
math.cos(x), math.sin(x) | Trigonométrie (argument en radians) |
Sortie attendue :
Aire d'un disque de rayon 5 : 78.54
sqrt(2) = 1.4142
floor(3.7) = 3
ceil(3.2) = 4
5! = 120
Le module random
Le module random permet de générer des nombres pseudo-aléatoires.
Utile pour simulations, jeux, échantillonnages.
| Fonction | Rôle |
|---|---|
random.random() | Un flottant aléatoire dans |
random.randint(a, b) | Un entier aléatoire dans (bornes incluses) |
random.choice(s) | Un élément aléatoire d'une séquence non vide |
random.shuffle(l) | Mélange une liste sur place |
random.sample(s, k) | Échantillon de k éléments distincts |
Sortie (variera car aléatoire) :
Dé : 4
Pièce : Pile
Jeu mélangé : ['Valet', 'Roi', '10', 'Dame']
random.seed(42), vous obtenez la même suite à chaque exécution —
utile pour reproduire un bug, à éviter pour un vrai tirage.Le module statistics
Pour les statistiques descriptives élémentaires : moyenne, médiane, écart-type.
| Fonction | Rôle |
|---|---|
statistics.mean(data) | Moyenne arithmétique |
statistics.median(data) | Médiane |
statistics.mode(data) | Mode (valeur la plus fréquente) |
statistics.stdev(data) | Écart-type (échantillon) |
statistics.variance(data) | Variance (échantillon) |
Sortie attendue :
Moyenne : 12
Médiane : 12.0
Écart-type: 2.54
Mode : 12
Remarquez que statistics.mean fait exactement ce que vous écririez à la
main avec sum(notes) / len(notes) — mais avec en prime la gestion des
listes vides (lève une exception parlante).
Trois bibliothèques, trois usages typiques
math
Quand le calcul est mathématique : racine carrée, trigonométrie,
puissances, constantes (pi, e).
random
Quand il faut introduire du hasard : simulations, tirages, jeux, brouillage d'une liste.
statistics
Quand on a une liste de mesures : moyenne, médiane, dispersion.
Quelle fonction tire un entier aléatoire entre 1 et 6 inclus ?
Conseils méthodiques
- Ne réécrivez pas une fonction qui existe déjà dans la bibliothèque standard. C'est l'objet même de l'item .
- Citez la doc quand vous utilisez une fonction non-évidente : un
commentaire
# voir docs.python.org math.gcdaide la relecture. - Importez en tête de fichier, pas au milieu du code. C'est une convention universelle en Python.
Pièges courants
random.randint(a, b)inclutb. Contrairement àrange(a, b)qui l'exclut.math.log(x)est le logarithme naturel (base ), pas le log décimal. Pour le log décimal :math.log10(x).- Les angles de
math.cosetmath.sinsont en radians, pas en degrés. Pour convertir :math.radians(deg). statistics.mean([])lève une exception. Penser à vérifier la liste d'abord, ou attraper l'exception.from math import *: à proscrire — masque l'origine des noms.
Pour aller plus loin
Au-delà de la bibliothèque standard, Python dispose d'un écosystème
gigantesque de bibliothèques tierces : numpy pour le calcul
scientifique, matplotlib pour les graphiques, requests pour le Web,
pandas pour les tableaux de données. La démarche reste la même :
lire la doc, importer, utiliser.