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
- Développeurs Python débutants à intermédiaires
- Data analysts / data scientists souhaitant renforcer leur niveau Python
- Ingénieurs, chercheurs, consultants techniques
- Étudiants en informatique ou data
- Professionnels souhaitant industrialiser leurs scripts Python
- Maîtrise des bases de Python :
- Variables, conditions, boucles
- Fonctions
- Listes, dictionnaires, tuples
- Avoir déjà écrit des scripts Python
- Notions de programmation (tout langage accepté)
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
VehiculeClasses filles
Voiture,Camion,MotoPolymorphisme 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
ValidatorImplémenter plusieurs validateurs concrets
Utiliser
@propertypour 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
pdbBonnes 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 à
pipetrequirements.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
