📚 Référence par bibliothèque
Chaque module est replié par défaut : clique sur son titre pour afficher ses fonctions (math, random, datetime, re, json, turtle, tkinter…).
🔢 Module math
Fonctions mathématiques - le module math fournit les fonctions et constantes mathématiques usuelles.
import math - Importer le module
math.pi - Constante π (3.14159…)
math.e - Constante e (2.71828…)
math.inf - Infini positif
math.sqrt(16) - Racine carrée (renvoie un décimal)
math.pow(2, 3) - 2 puissance 3, en décimal
math.exp(2) - Exponentielle : e² (7.389…)
math.log(math.e) - Logarithme népérien
math.log2(8) - Logarithme en base 2
math.log10(100) - Logarithme en base 10
math.sin(math.pi / 2) - Sinus (en radians)
math.cos(0) - Cosinus (en radians)
round(math.tan(math.pi / 4), 6) - Tangente : le résultat brut vaut 0.9999999999999999, d'où l'arrondi
math.asin(1) - Arc sinus (π/2)
math.acos(1) - Arc cosinus
math.atan(1) - Arc tangente (π/4)
math.degrees(math.pi) - Radians vers degrés
math.radians(180) - Degrés vers radians (π)
math.floor(-2.5) - Arrondi vers le bas
math.ceil(2.1) - Arrondi vers le haut
math.trunc(-2.7) - Partie entière (vers zéro)
math.fabs(-5) - Valeur absolue, en décimal
math.factorial(5) - Factorielle
math.gcd(12, 8) - PGCD
math.lcm(4, 6) - PPCM (Python 3.9+)
math.hypot(3, 4) - Hypoténuse (distance à l'origine)
math.isclose(0.1 + 0.2, 0.3) - Égalité à une petite tolérance près
math.isfinite(1.0) - Le nombre est fini ?
math.isinf(float('inf')) - Le nombre est infini ?
math.isnan(float('nan')) - Le nombre est NaN (« pas un nombre ») ?
math.comb(5, 2) - Combinaisons : « 2 parmi 5 »
math.perm(5, 2) - Arrangements de 2 parmi 5
🎲 Module random
Nombres pseudo-aléatoires - les résultats changent à chaque exécution, sauf si on fixe la graine avec random.seed.
import random - Importer le module
random.random() - Décimal dans [0, 1)
random.randint(1, 10) - Entier entre 1 et 10, bornes incluses
random.randrange(0, 10, 2) - Entier de range(0, 10, 2) : la borne de fin est exclue
random.uniform(1.0, 10.0) - Décimal entre 1.0 et 10.0
random.choice(['a', 'b', 'c']) - Un élément au hasard
random.choices(['a', 'b'], k=3) - 3 éléments avec remise (doublons possibles)
random.sample(['a', 'b', 'c'], 2) - 2 éléments distincts (sans remise)
random.shuffle(liste) - Mélanger une liste, en place
random.seed(42) - Fixer la graine : la suite de tirages devient reproductible
random.getrandbits(4) - Entier aléatoire de 4 bits (0 à 15)
random.gauss(0, 1) - Tirage selon une loi normale (moyenne, écart-type)
random.triangular(0, 1) - Loi triangulaire
random.expovariate(1.5) - Loi exponentielle
⏱️ Module time
Mesure du temps - horloge, pauses, durées.
import time - Importer le module
time.time() - Secondes écoulées depuis le 1er janvier 1970 (époque Unix)
time.sleep(2) - Pause de 2 secondes
time.perf_counter() - Compteur de haute précision pour mesurer une durée
time.monotonic() - Horloge qui ne revient jamais en arrière
time.process_time() - Temps CPU consommé par le processus
time.ctime() - Date et heure actuelles sous forme de texte lisible
time.localtime() - Date et heure locales (struct_time)
time.gmtime() - Date et heure UTC (struct_time)
time.mktime(t) - Convertir un struct_time local en secondes Unix
time.strftime('%Y-%m-%d') - Formater la date actuelle selon un modèle
time.strptime('2024-01-01', '%Y-%m-%d') - Lire une date écrite dans un texte
time.timezone - Décalage du fuseau horaire, en secondes
time.tzname - Noms du fuseau horaire
📅 Module datetime
Dates et heures - calculs sur des dates, durées, formats d'affichage.
from datetime import datetime, date, timedelta - Importer les classes principales
datetime.now() - Date et heure actuelles
date.today() - Date du jour
date(2026, 10, 4) - Créer une date
datetime(2026, 10, 4, 12, 30) - Créer une date avec l'heure
date(2026, 10, 4).year - Année (de même .month, .day, et .hour, .minute, .second pour un datetime)
date(2026, 10, 4).strftime('%d/%m/%Y') - Formater en texte (%Y année, %m mois, %d jour, %H heure, %M minute)
datetime.strptime('2026-10-04', '%Y-%m-%d') - Lire une date écrite dans un texte
date(2026, 12, 25) - date(2026, 10, 4) - Différence de deux dates : un timedelta
(date(2026, 12, 25) - date(2026, 10, 4)).days - Nombre de jours d'un timedelta
date(2026, 10, 4) + timedelta(days=30) - Ajouter une durée à une date
timedelta(days=1, hours=2).total_seconds() - Durée totale en secondes
date(2026, 10, 4).replace(year=2027) - Remplacer une partie de la date
date(2026, 10, 4).weekday() - Jour de la semaine : 0 = lundi, 6 = dimanche
date(2026, 10, 4).isoweekday() - Jour de la semaine ISO : 1 = lundi, 7 = dimanche
date(2026, 10, 4).isocalendar()[1] - Numéro de semaine ISO
📁 Module os et os.path
Système d'exploitation - dossiers, fichiers, chemins, variables d'environnement. (Pour un code portable, pathlib est une alternative moderne.)
import os - Importer le module
os.getcwd() - Dossier de travail actuel
os.chdir('/chemin') - Changer de dossier de travail
os.listdir('.') - Lister le contenu d'un dossier
os.mkdir('dossier') - Créer un dossier
os.makedirs('a/b/c') - Créer un dossier et ses parents
os.rmdir('dossier') - Supprimer un dossier vide
os.remove('fichier.txt') - Supprimer un fichier
os.rename('ancien', 'nouveau') - Renommer ou déplacer
os.path.exists('chemin') - Le chemin existe-t-il ?
os.path.isfile('chemin') - C'est un fichier ?
os.path.isdir('chemin') - C'est un dossier ?
os.path.join('a', 'b') - Assembler des morceaux de chemin avec le bon séparateur
os.path.basename('/a/b/c.txt') - Nom du fichier
os.path.dirname('/a/b/c.txt') - Dossier qui contient le fichier
os.path.splitext('rapport.pdf') - Séparer le nom et l'extension
os.path.abspath('f.txt') - Chemin absolu
os.path.getsize('f.txt') - Taille du fichier, en octets
os.environ.get('HOME') - Lire une variable d'environnement
os.name - Famille du système ('posix' ou 'nt')
💻 Module sys
Interpréteur Python - arguments du programme, version, sortie.
import sys - Importer le module
sys.argv - Arguments de la ligne de commande (argv[0] : nom du script)
sys.exit(0) - Quitter le programme (0 : tout va bien)
sys.path - Dossiers où Python cherche les modules
sys.platform - Plateforme : 'win32', 'linux', 'darwin'
sys.version - Version de Python, sous forme de texte
sys.version_info >= (3, 8) - Version de Python, sous forme comparable
sys.maxsize - Plus grand indice possible d'une séquence (2⁶³ − 1 sur un système 64 bits)
sys.stdin, sys.stdout, sys.stderr - Entrée standard, sortie standard, sortie d'erreurs
sys.getrecursionlimit() - Profondeur maximale de récursion (1000 par défaut)
sys.setrecursionlimit(2000) - Changer cette limite
sys.modules - Dictionnaire des modules déjà chargés
📝 Module json
Données JSON - le format d'échange le plus répandu (API, fichiers de configuration).
import json - Importer le module
json.dumps({'a': 1, 'b': [True, None]}) - Dictionnaire Python → texte JSON
json.loads('{"a": 1}') - Texte JSON → dictionnaire Python
json.dump(donnees, fichier) - Écrire en JSON dans un fichier ouvert
json.load(fichier) - Lire du JSON depuis un fichier ouvert
json.dumps({'a': 1}, indent=2) - JSON mis en forme (indenté)
json.dumps({'b': 1, 'a': 2}, sort_keys=True) - Clés triées
json.dumps('é', ensure_ascii=False) - Garder les caractères non ASCII tels quels
🔍 Module re (expressions régulières)
Motifs de texte - chercher, extraire ou remplacer des textes qui suivent un modèle. Les motifs s'écrivent en *raw string* : r"\d+".
import re - Importer le module
re.search(r'\d+', 'a12b').group() - Première correspondance n'importe où dans le texte
re.match(r'\d+', 'a12b') - Correspondance au début du texte seulement (None ici)
re.fullmatch(r'\d+', '2026').group() - Tout le texte doit correspondre
re.findall(r'\d+', 'a12b345') - Toutes les correspondances, en liste
[m.start() for m in re.finditer(r'\d', 'a1b2')] - Parcourir les correspondances (positions de début)
re.sub(r'\s+', ' ', 'a b c') - Remplacer chaque correspondance
re.sub(r'\d', '#', 'a1b2', count=1) - Remplacer seulement la première
re.split(r'[;,]', 'a;b,c') - Découper selon un motif
re.compile(r'\d+').findall('1 22') - Compiler un motif réutilisé souvent
re.search(r'(\d+)h(\d+)', '14h30').groups() - Groupes capturés par des parenthèses
re.search(r'(?P<h>\d+)h', '14h30').group('h') - Groupe nommé
re.findall(r'[a-z]+', 'ABC def', re.IGNORECASE) - Ignorer la casse
\d \w \s - Un chiffre ; une lettre, un chiffre ou _ ; un espace
[a-z] [A-Z0-9] [^abc] - Une lettre minuscule ; une majuscule ou un chiffre ; tout sauf a, b, c
^debut fin$ - Commence par ; finit par
. * + ? - Un caractère quelconque ; 0 ou plus ; 1 ou plus ; 0 ou 1
{3} {3,5} - Exactement 3 fois ; entre 3 et 5 fois
(a|b) - a ou b (groupe)
🌐 Module urllib
Requêtes HTTP - lire une page web ou une API sans bibliothèque tierce. (Pour des usages plus riches, la bibliothèque requests est plus confortable.)
from urllib.request import urlopen - Importer l'ouverture d'URL
urlopen('https://example.com') - Ouvrir une URL (renvoie une réponse)
reponse.read() - Lire le contenu (en octets)
reponse.status - Code de statut HTTP (200 : succès)
from urllib.parse import urlparse, quote, unquote - Importer les outils d'adresses
urlparse('https://example.com/chemin?x=1') - Découper une adresse en morceaux
quote('à b') - Encoder un texte pour une adresse ('%C3%A0%20b')
unquote('%C3%A0%20b') - Décoder un texte encodé
📊 Module statistics
Statistiques de base - moyenne, médiane, dispersion.
import statistics - Importer le module
statistics.mean([1, 2, 3, 6]) - Moyenne
statistics.median([1, 2, 3, 6]) - Médiane
statistics.mode([1, 2, 2, 3]) - Valeur la plus fréquente
statistics.stdev([1, 2, 3]) - Écart-type d'un échantillon
statistics.pstdev([1, 2, 3]) - Écart-type d'une population entière
statistics.variance([1, 2, 3]) - Variance d'un échantillon
statistics.harmonic_mean([1, 2]) - Moyenne harmonique
statistics.geometric_mean([1, 4]) - Moyenne géométrique
🧺 Module collections
Structures de données supplémentaires - compter, regrouper, files d'attente, enregistrements.
from collections import Counter, defaultdict, deque, namedtuple - Importer les structures principales
Counter('abracadabra') - Compter les éléments
Counter('abracadabra').most_common(2) - Les éléments les plus fréquents
defaultdict(list) - Dictionnaire qui crée une valeur par défaut pour une clé absente
deque([1, 2, 3]) - File à deux bouts : append, appendleft, pop, popleft en O(1)
namedtuple('Point', 'x y')(3, 4) - Tuple dont les éléments ont un nom
🔁 Module itertools
Itérateurs combinatoires - arrangements, combinaisons, produits cartésiens.
import itertools - Importer le module
list(itertools.permutations('ABC', 2))[:3] - Arrangements de 2 éléments (l'ordre compte)
list(itertools.combinations([1, 2, 3], 2)) - Combinaisons de 2 éléments (l'ordre ne compte pas)
list(itertools.product([0, 1], repeat=2)) - Produit cartésien (tous les couples)
list(itertools.chain([1, 2], [3])) - Enchaîner plusieurs suites
list(itertools.accumulate([1, 2, 3, 4])) - Sommes cumulées
list(itertools.islice(itertools.count(10), 3)) - Les 3 premiers éléments d'une suite infinie
🔐 Module secrets
Hasard sûr - pour les mots de passe et jetons : contrairement à random, les tirages sont imprévisibles.
import secrets - Importer le module
secrets.randbelow(10) - Entier aléatoire de 0 à 9
secrets.choice(['a', 'b']) - Un élément au hasard
secrets.token_hex(16) - Jeton aléatoire en hexadécimal
secrets.token_urlsafe(16) - Jeton utilisable dans une adresse web
secrets.compare_digest(a, b) - Comparaison à temps constant (pour des secrets)
🖼️ Module tkinter
Interfaces graphiques - fenêtres, boutons et champs de saisie (bibliothèque standard, souvent importée avec import tkinter as tk).
import tkinter as tk - Importer le module
fenetre = tk.Tk() - Créer la fenêtre principale
fenetre.title('Mon appli') - Titre de la fenêtre
fenetre.geometry('400x300') - Taille de la fenêtre, en pixels
label = tk.Label(fenetre, text='Bonjour') - Texte affiché
label.pack() - Placer le composant dans la fenêtre
bouton = tk.Button(fenetre, text='OK', command=action) - Bouton qui appelle une fonction
champ = tk.Entry(fenetre) - Champ de saisie ; champ.get() lit ce qui est saisi
fenetre.mainloop() - Lancer la boucle d'affichage
🎨 Module turtle
Dessin avec une tortue - un crayon qui avance, tourne et trace des figures (très utilisé pour apprendre à programmer).
import turtle - Importer le module
turtle.forward(100) - Avancer de 100 pixels
turtle.backward(100) - Reculer de 100 pixels
turtle.right(90) - Tourner à droite de 90°
turtle.left(90) - Tourner à gauche de 90°
turtle.penup() - Lever le crayon (déplacements sans tracé)
turtle.pendown() - Baisser le crayon
turtle.goto(0, 0) - Aller aux coordonnées (0, 0)
turtle.circle(50) - Dessiner un cercle de rayon 50
turtle.color('red') - Changer la couleur du tracé
turtle.begin_fill() / turtle.end_fill() - Commencer / terminer le remplissage d'une forme
turtle.done() - Terminer et garder la fenêtre ouverte