Formation : Programmation avancée en Python

Objectifs : 

À l’issue de la formation, les participants seront capables de :

    • Écrire du code Python robuste, lisible et maintenable
    • Maîtriser les concepts avancés du langage Python
    • Structurer des projets Python professionnels
    • Optimiser les performances et la qualité du code
    • Gérer les erreurs, les tests et le débogage
    • Comprendre les bases de la programmation orientée objet avancée

Format : présentiel ou à distance

Durée : 3 jours

Prix : 1 950 € HT

Programme

  • Compréhension approfondie de l’interpréteur Python
  • Mutabilité / immutabilité
  • Passage par référence vs valeur
  • Scope des variables (local, global, nonlocal)
Cas pratique :

Analyse de bugs cachés

  • Identifier et corriger des erreurs liées à la mutabilité des listes et dictionnaires
  • Comprendre les effets de bord dans les fonctions
  • Fonctions lambda
  • Paramètres *args et **kwargs
  • Fonctions imbriquées
  • Closures
  • Fonctions comme objets
Cas pratique

Création d’un moteur de calcul flexible

  • Créer des fonctions mathématiques dynamiques
  • Passer des fonctions en paramètres
  • Générer des fonctions personnalisées
  • Principe des décorateurs

  • Décorateurs avec arguments

  • Cas d’usage réels (logs, contrôle d’accès, timing)

Cas pratique

Décorateur de monitoring

  • Créer un décorateur qui :

    • Mesure le temps d’exécution

    • Loggue les appels de fonctions

  • Rappels POO : classes, objets, méthodes

  • Méthodes spéciales (__init__, __str__, __repr__)

  • Attributs de classe vs instance

  • Encapsulation

Cas pratique

Modélisation métier

  • Créer un système de gestion de comptes bancaires

  • Implémenter dépôts, retraits, affichage personnalisé

  • Héritage simple et multiple

  • Surcharge de méthodes

  • super()

  • Composition vs héritage

Cas pratique

Système de gestion de véhicules

  • Classe mère Vehicule

  • Classes filles Voiture, Camion, Moto

  • Polymorphisme sur une méthode calculer_prix_location()

  • Méthodes statiques et de classe

  • Propriétés (@property)

  • Classes abstraites (abc)

  • Dataclasses

Cas pratique

Framework de validation

  • Créer une classe abstraite Validator

  • Implémenter plusieurs validateurs concrets

  • Utiliser @property pour la validation automatique

  • Hiérarchie des exceptions

  • Création d’exceptions personnalisées

  • Bonnes pratiques try / except / finally

Cas pratique

Sécurisation d’un programme

  • Créer un système de saisie utilisateur robuste

  • Lever et gérer des exceptions personnalisées

  • Introduction aux tests unitaires (unittest, pytest)
  • Assertions

  • Debug avec pdb

  • Bonnes pratiques de nommage et PEP 8

Cas pratique

Tests automatisés

  • Écrire des tests unitaires pour un module existant

  • Identifier et corriger des bugs via les tests

  • Organisation des fichiers et packages

  • Modules et imports

  • Environnements virtuels

  • Introduction à pip et requirements.txt

Cas pratique

Mini-projet structuré

  • Transformer un script monolithique en projet structuré

  • Séparer logique métier, utilitaires et point d’entrée

 

  • Gestion d’un système (ex : gestion de stock, réservation, notes)
  • Utilisation :

    • POO

    • Décorateurs

    • Exceptions

    • Tests

    • Fichiers

  • Code structuré et testé

 

Livrables et documentations fournis :

 

  • Supports de formation

  • Attestation de formation
  • Jeux d’exercices corrigés

  • Code source des projets

  • Bonnes pratiques Python

  • Ressources pour aller plus loin