Les modules et l'import en Python
Un module est un fichier contenant du code Python réutilisable. Il permet d'organiser ton programme et d'utiliser des fonctions déjà écrites.
Qu'est-ce qu'un module et pourquoi en utiliser ?
import math
print(math.sqrt(16)) # 4.0La première ligne importe le module math. La deuxième ligne utilise la fonction sqrt du module math pour calculer la racine carrée de 16. Le résultat est 4.0 (un nombre flottant).
La syntaxe import / from ... import ... / as
import math
print(math.sqrt(9)) # 3.0
from math import sqrt
print(sqrt(9)) # 3.0
import math as m
print(m.sqrt(9)) # 3.0Le premier bloc importe tout le module math et utilise sqrt avec le préfixe math. Le deuxième bloc importe uniquement la fonction sqrt, donc on l'appelle directement. Le troisième bloc importe le module math avec l'alias m, donc on utilise m.sqrt.
Les modules standards utiles en SNT
import math
print(math.pi) # 3.141592653589793
import random
print(random.randint(1, 6)) # un entier entre 1 et 6 (exemple : 4)
from datetime import datetime
print(datetime.now()) # date et heure actuelles (exemple : 2025-03-23 14:30:00)
import csv
# (lecture d'un fichier CSV, voir exemple plus bas)Le code importe math et affiche la valeur de pi. Ensuite, random.randint(1, 6) simule un dé à six faces. La fonction datetime.now() renvoie la date et l'heure actuelles. Le module csv est importé pour être utilisé dans la suite.
Exemple complet avec le module csv
import csv
with open('notes.csv', newline='', encoding='utf-8') as f:
lecteur = csv.reader(f)
for ligne in lecteur:
print(ligne)
# Si notes.csv contient :
# nom,note
# Alice,15
# Bob,12
# Le programme affiche :
# ['nom', 'note']
# ['Alice', '15']
# ['Bob', '12']La fonction open ouvre le fichier notes.csv en mode lecture. Le paramètre newline='' évite des problèmes de sauts de ligne. Le paramètre encoding='utf-8' gère les caractères accentués. csv.reader(f) crée un lecteur qui parcourt le fichier. La boucle for affiche chaque ligne sous forme de liste.
Créer et importer son propre module
# Fichier mon_module.py
def saluer(nom):
return "Bonjour " + nom
# Fichier principal.py
import mon_module
print(mon_module.saluer("Alice")) # Bonjour AliceLe fichier mon_module.py définit la fonction saluer. Dans le fichier principal, on importe ce module. On appelle la fonction avec mon_module.saluer("Alice"). Le programme affiche Bonjour Alice.
Bonnes pratiques et erreurs fréquentes
import math
print(sqrt(4)) # NameError: name 'sqrt' is not defined
# Correction :
from math import sqrt
print(sqrt(4)) # 2.0Le premier bloc provoque une erreur car sqrt n'est pas défini dans le programme. Le deuxième bloc importe sqrt directement, donc l'appel fonctionne.
🎯 À retenir
- ✅Un module est un fichier .py contenant du code réutilisable.
- ✅import module permet d'utiliser module.fonction().
- ✅from module import fonction permet d'utiliser fonction() directement.
- ✅import module as alias donne un surnom au module.
- ✅Les modules math, random, datetime et csv sont très utiles en SNT.
- ✅Pour créer ton module, crée un fichier .py et importe-le.
- ✅ModuleNotFoundError signifie que Python ne trouve pas le module.
- ✅Mets toujours les imports en haut de ton fichier.
✍️ Teste-toi
1. Quelle est la bonne syntaxe pour importer la fonction randint du module random ?
2. Que fait le code suivant ? import math ; print(math.floor(3.7))
3. Quelle erreur obtiens-tu si tu écris print(sqrt(9)) sans avoir importé sqrt ?
4. Pourquoi utiliser un module ?
