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

    Paramètres avancésAnnotations de type

  1. 02

    Fonctions comme objets, lambda et générateurs

    20 min
    • 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

    Fonctions lambdaFonctions d'ordre supérieurGénérateurs

  2. 03

    Modules, paquets et bibliothèque standard

    15 min
    • 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

  3. 04

    Classes et objets

    20 min
    • 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__

    Classes et instancesMéthodesMéthodes spéciales

  4. 05

    Héritage, dataclasses et exceptions personnalisées

    20 min
    • 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

    HéritageDataclassesExceptions personnalisées

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.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.