Chapter 1: Modularité et mise au point des
programmes
Partie 1: Modules & docstrings
Concepts à apprendre
• import
• from ... import ...
• as pour alias
• __name__ == "__main__"
• docstrings (chaînes de documentation)
Explication
En Python, on peut séparer un programme en plusieurs fichiers (modules). Cela permet de mieux organiser
son code, de le réutiliser, et de le rendre plus lisible.
Exemple :
# fichier [Link]
def moyenne(notes):
"""Calcule la moyenne d'une liste de notes."""
return sum(notes) / len(notes)
# fichier [Link]
from utils import moyenne
notes = [12, 14, 16]
print("Moyenne:", moyenne(notes))
Activité
1. Créez un fichier math_utils.py avec une fonction carre(x) qui retourne le carré d’un nombre.
2. Dans un fichier [Link] , importez la fonction et utilisez-la pour calculer le carré de 3 nombres.
3. Ajoutez une docstring à chaque fonction.
4. Testez le programme.
Partie 2: Debugging et impression
Concepts à apprendre
• Utiliser print() pour suivre l'exécution
1
• Repérer les bugs logiques ou de syntaxe
• Lire un traceback Python
Exemple de bug logique :
def moyenne(notes):
return sum(notes) / len(notes)
print(moyenne([])) # Provoque une erreur : division par zéro
Activité
1. Modifiez la fonction moyenne() pour qu’elle vérifie si la liste est vide.
2. Ajoutez des print() dans le code pour suivre la valeur des variables.
3. Corrigez un bug volontairement ajouté : par exemple, un nom de variable incorrect.
Partie 3: Tests avec doctest et pytest
Concepts à apprendre
• Ajouter des tests avec doctest
• Lancer des tests avec pytest
Exemple avec doctest :
def carre(x):
"""
Retourne le carré de x
>>> carre(3)
9
>>> carre(-2)
4
"""
return x * x
Activité
1. Ajoutez des doctests aux fonctions moyenne() et carre() .
2. Installez pytest (si possible) et créez un fichier test_utils.py .
3. Ajoutez des assertions pour tester vos fonctions.
2
Partie 4: Style de code et PEP8
Concepts à apprendre
• PEP8 : convention de style Python
• Bonnes pratiques de nommage
• Espacement, commentaires, noms de fichiers
Exemple :
# Mauvais style
def M(a,b):return a+b
# Bon style
def addition(a, b):
"""Retourne la somme de deux nombres."""
return a + b
Activité
1. Reprenez votre code math_utils.py .
2. Corrigez les noms de variables, l’espacement, et ajoutez des docstrings.
3. Utilisez un validateur PEP8 si possible.
MÉMO VISUEL RÉCAPITULATIF
• ✅ import / from ... import ...
• ✅ docstrings
• ✅ print() pour le débogage
• ✅ doctest , pytest
• ✅ PEP8, style de code
MINI TEST
1. À quoi sert une docstring ?
2. Que renvoie __name__ dans un module importé ?
3. Quelle est la différence entre une erreur de syntaxe et un bug logique ?
4. Écrire une fonction avec doctest.
5. Identifier et corriger des erreurs de style dans un extrait de code.
MINI PROJET – Partie 1 du gestionnaire de notes
Objectif
Construire une petite application pour stocker et afficher les notes d’élèves.
3
Étapes
1. Créez une fonction ajouter_eleve(nom, notes) qui ajoute un élève (dans un dictionnaire).
2. Créez une fonction afficher_eleve(nom) qui affiche les notes et la moyenne.
3. Utilisez une structure dict avec noms et listes de notes.
4. Divisez le code en fichiers ( [Link] , [Link] , etc.).
5. Ajoutez des tests et du style.
Exemple :
# [Link]
eleves = {}
def ajouter_eleve(nom, notes):
eleves[nom] = notes
def afficher_eleve(nom):
if nom in eleves:
print(f"{nom}: {eleves[nom]} - Moyenne: {sum(eleves[nom])/
len(eleves[nom])}")
Ce mini-projet utilise :
• dict , list
• import , docstring
• print() pour le suivi
• Respect du style (PEP8)
• Préparation à l’OOP du chapitre 3
Souhaitez-vous maintenant ajouter des exercices supplémentaires, des captures d’écran, ou passer au
chapitre 2 ?