Python intermédiaire : fonctions, modules et programmation orientée objet
Python intermédiaire (fonctions, modules, POO) est un cours de niveau intermédiaire de 5 leçons (environ 3 h), avec 15 exercices et 15 questions de quiz. Prérequis : Python fondamentaux. Les exercices s'exécutent dans le navigateur, sans installation.
- Python
- Intermédiaire
- 5 leçons
- 3 h
- 15 exercices
- Exercices exécutés dans le navigateur
Le cours en bref
Ce cours vous fait passer de scripts simples à un code Python organisé et réutilisable. Vous maîtrisez les paramètres avancés et les annotations, les fonctions d'ordre supérieur et les générateurs, l'organisation en modules, puis la programmation orientée objet jusqu'aux dataclasses et aux exceptions personnalisées. C'est la base indispensable pour la data science et le développement web en Python.
Ce que tu sauras faire
- Concevoir des fonctions souples et sûres avec *args, **kwargs, arguments nommés et annotations
- Utiliser lambda, key= et les générateurs pour traiter des données efficacement
- Organiser un projet en modules et paquets et exploiter la bibliothèque standard
- Modéliser un domaine métier avec des classes, des méthodes et l'héritage
- Simplifier les classes de données avec @dataclass
- Définir et intercepter des exceptions métier
Programme des 5 leçons
- Utiliser *args et **kwargs pour accepter un nombre variable d'arguments
- Imposer des arguments nommés et éviter le piège des valeurs par défaut mutables
- Annoter les types des paramètres et du retour
- 02
Fonctions comme objets, lambda et générateurs
- Passer une fonction en argument, notamment avec le paramètre key
- Écrire des fonctions lambda courtes
- Créer un générateur avec yield pour traiter des données au fil de l'eau
- 03
Modules, paquets et bibliothèque standard
- Importer des modules et des fonctions de différentes manières
- Organiser son code en modules et utiliser `if __name__ == "__main__"`
- Exploiter quelques modules clés de la bibliothèque standard
Modules et importBibliothèque standardEnvironnements virtuels et pip
- 04
Classes et objets
- Définir une classe avec __init__, des attributs et des méthodes
- Créer et manipuler plusieurs instances indépendantes
- Distinguer attributs d'instance et de classe et définir __repr__
- 05
Héritage, dataclasses et exceptions personnalisées
- Créer une classe dérivée qui réutilise et spécialise une classe parente
- Simplifier les classes de données avec @dataclass
- Définir ses propres exceptions métier
Projet final
Module de gestion de bibliothèque de prêts
Concevez un petit module Python qui gère les prêts d'une médiathèque. Il doit modéliser les documents (livre, DVD) par héritage ou dataclasses, les adhérents et les prêts par composition, appliquer des règles métier (nombre maximal de prêts, durée selon le type de document, pénalités de retard calculées avec datetime) et signaler les violations par des exceptions personnalisées. Un générateur doit permettre de parcourir les prêts en retard.
Livrables
- Un module `mediatheque.py` organisé, avec annotations de type et docstrings
- Au moins une hiérarchie de classes avec super() et une méthode redéfinie
- Des dataclasses avec field(default_factory=...) là où c'est nécessaire
- Une hiérarchie d'exceptions métier (par exemple QuotaAtteint, DocumentIndisponible)
- Un générateur des prêts en retard et une fonction de rapport triée avec key=
- Un bloc `if __name__ == "__main__":` contenant un scénario de démonstration et des assertions
Critères d'évaluation
- Les règles métier sont respectées et testées par des assertions
- L'héritage et la composition sont utilisés à bon escient
- Les exceptions sont spécifiques, informatives et interceptées au bon niveau
- Le code est lisible : noms explicites, fonctions courtes, annotations et docstrings
- Aucun piège classique (défaut mutable, attribut de classe partagé) n'est présent
Questions fréquentes
Quel niveau faut-il pour suivre ce cours Python intermédiaire ?
Il faut connaître les bases de Python : variables, conditions, boucles, listes, dictionnaires et fonctions simples. Ces notions sont couvertes par le cours Python fondamentaux (PY1).
La programmation orientée objet est-elle utile en data science ?
Oui. Les bibliothèques comme pandas ou scikit-learn sont construites avec des classes : comprendre les objets, les méthodes et l'héritage aide à les utiliser, à lire leur documentation et à écrire son propre code réutilisable.
Quelle est la différence entre une classe et une dataclass ?
Une dataclass est une classe normale à laquelle le décorateur @dataclass ajoute automatiquement __init__, __repr__ et __eq__ à partir des attributs annotés. Elle est idéale pour les objets qui servent surtout à stocker des données.
Ce cours prépare-t-il à Django ou FastAPI ?
Oui, il en couvre les prérequis Python : organisation en modules et paquets, classes et héritage, annotations de type et exceptions. Ces notions sont utilisées en permanence dans les frameworks web.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « Python intermédiaire (fonctions, modules, POO) » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.