Python | Programmation Objet Mixte : présentiel / à distance
DerniĂšre mise Ă jour : 16/10/2025
Pré-inscription
Présentation
Cette formation de cinq jours conduit les dĂ©veloppeurs Ă maĂźtriser Python orientĂ© objet : crĂ©ation de classes, hĂ©ritage, organisation en modules/paquets et manipulation avancĂ©e de fichiers ou dâAPIs Web. Elle aborde Ă©galement la conception dâinterfaces graphiques lĂ©gĂšres, lâassurance-qualitĂ© (tests unitaires, couverture, lint) et le packaging moderne avec gĂ©nĂ©ration de documentation et CI/CD.
Un volet « IA » illustre comment un LLM peut suggérer des tests tout en respectant la confidentialité du code. Chaque journée se conclut par un atelier pratique adaptable pour ancrer immédiatement les notions vues.
Objectifs
A l'issue de la formation, le stagiaire sera capable d'utiliser les principales fonctionnalités du langage de programmation Python pour développer des applications multiplateformes.
- Comprendre les bases du langage Python et son écosystÚme
- Acquérir les principes de la programmation objet
- Comprendre et utiliser les fonctions et modules
- Concevoir des interfaces graphiques
- Utiliser les outils de test et d'évaluation de la qualité d'un programme Python
Public visé
Développeurs, ingénieurs, chefs de projets proches du développement
Â
Prérequis
Programme
Jour 1 â DĂ©couvrir le langage Python
Objectifs du jour :
- Ăcrire et exĂ©cuter un premier script
- Manipuler les types de base
- Gérer proprement les erreurs
Contenu :
- Le monde Python
- RÎle de l'interpréteur et différence script / module
- Installation Python et création d'un environnement virtuel
- Convention PEP 8 : pourquoi appliquer un style homogĂšne
- Types & séquences
- Nombres, chaĂźnes, listes, tuples : quand choisir l'un ou l'autre
- Immuable vs mutable : impact sur la mémoire et les performances
- Slicing : extraire rapidement des sous-listes ou sous-chaĂźnes
- Structures de contrĂŽle
- Brancher la logique avec if / elif / else
- Répéter des actions via « for » et « while »
- Compréhensions de liste : filtrer ou transformer en une seule ligne
- Gestion d'exceptions
- Bloc try / except / finally comme « air-bag » de sécurité
- Afficher un message d'erreur clair plutĂŽt qu'une trace illisible
- Introduction Ă datetime
Â
- Atelier pratique :
- Transformer un CSV en JSON via la ligne de commande, avec gestion d'erreurs si le fichier ou l'encodage est incorrect.
Â
Jour 2 â Passer Ă la programmation orientĂ©e Objet
Objectifs du jour :
- Créer des classes réutilisables
- Appliquer héritage et encapsulation
- Structurer un projet en paquets importables
Contenu :
- Classes & objets :
- Initialiser les attributs
- Attributs publics, protégés, privés : rÚgles de nommage
- Propriétés pour contrÎler l'accÚs en lecture/écriture
- Exceptions personnalisées
- Héritage & polymorphisme :
- Composition vs Héritage
- Partager du code commun via super()
- Surcharge de méthodes pour un comportement spécialisé
- Duck typing (souplesse Python)
- ABC : définir un contrat formel d'interface
- Modules & paquets :
- Organiser les fichiers dans des dossiers
- Imports relatifs pour éviter les chemins absolus volumineux
- Lancer un paquet en mode exécutable
- Patterns simples : factory, Singleton Ă la mode Python
- Gestion des dépendances :
- Installer une bibliothĂšque dans le bon environnement
- Geler les versions dans « requirements.txt » pour la reproductibilité
Â
- Atelier pratique :
- Modélisation d'un petit domaine (au choix) avec rappel UML de base
- Créer la hiérarchie de classes
- Sérialiser un objet en JSON puis le reconstituer depuis ce fichier.
Â
Jour 3 â Fonctions avancĂ©es, fichiers & Web
Objectifs :
- Exploiter fonctions de âpremiĂšre classeâ
- Lire / écrire des données locales
- Interroger une API Web
Contenu :
- Fonctions « citoyens de premiÚre classe » :
- Passer une fonction en paramÚtre (tri personnalisé, callbacks)
- Lambda & closure : écrire des fonctions anonymes d'une ligne
- Décorateurs simples : ajouter journalisation ou chronométrage
- Entrées / sorties & sérialisation :
- Chemins multiplateformes avec pathlib
- Lire / écrire des fichiers texte et binaires (JSON csv)
- Précaution de sécurité
- AccÚs Web simplifié :
- Envoyer une requĂȘte GET pour rĂ©cupĂ©rer un JSON public
- Uitliser requests.session pour réutiliser une connexion sur plusieurs appels
- Gérer le délai maximal (timeout) et les erreurs réseau
- Décoder la réponse et transformer en objets Python
Â
- Atelier pratique :
- Lire un CSV
- Convertir chaque ligne en objet Python
- Exporter en JSON et chronométrer l'opération via un décorateur.
Â
Jour 4 â Interface utilisateur et assurance-qualitĂ©
Objectifs du jour :
- Créer une interface graphique simple
- Mettre en place tests unitaires + couverture
- Découvrir l'apport d'un LLM pour générer des tests
Contenu :
- Interface graphique (Tkinter / PySimpleGUI) :
- Boucle d'évÚnements : « j'attends un clic et je réagis »
- Positionner les widgets avec grilles ou boĂźtes flexibles
- Séparer la logique (contrÎleur) de l'affichage (vue)
- Alternatives : streamlit, textual, PyWebIO
- Tests & lint :
- Créer une « check-list automatique »
- Mesurer ce qui n'est pas couvert avec coverage
- Maintenir un style uniforme grĂące au linter flake8 / ruff
- IA légÚre pour les tests :
- Générer un squelette de test via outil LLM
- Vérifier manuellement, corriger et compléter
- Mention RGPD / confidentialité & responsabilité de relecture
Â
- Atelier pratique :
- Exemple d'exercice Mini-calculatrice GUI
- Construire la fenĂȘtre et ses boutons
- Demander à l'IA un test d'addition, puis l'étendre pour gérer un cas d'erreur (division par zéro, champ vide)
Â
Jour 5 â Packaging, documentation et CI/CD
Objectifs du jour :
- Créer un package installable
- Générer documentation HTML
- Mettre en place une chaĂźne CI simple
Contenu :
- Packaging moderne :
- Déclarer nom, version, auteurs et dépendances
- Construire un fichier installable partout
- Différencier dépendances d'exécution et de développement
- Documentation & typage :
- Rédiger des docstrings format Google ou NumPy
- Générer un site HTML en quelques commandes
- Ajouter des annotations typing et détecter les incohérences avec mypy
- Intégration continue (CI/CD) :
- CrĂ©er un workflow GitHub / GitLab : lint â tests â build package
- Recevoir un retour immédiat pour éviter les régressions
- Publier le package sur un registre interne ou PyPI privé
Â
- Atelier pratique :
- Mettre en production locale
- Puis ajouter un pyproject.toml
- Générer la doc Sphinx, puis compléter un pipeline CI YAML (squelette fourni) pour lancer lint et les tests automatiquement
- Auditer une fonction Python : détection mauvaise pratique
Modalités pédagogiques
Docaposte Institute propose plusieurs dispositifs pédagogiques adaptés aux apprenants :
- Formation en présentiel
- En groupe (inter-entreprises ou intra-entreprise)
- En individuel (monitorat)
- En journée ou en cours du soir (sur demande spécifique)
- Formation en distanciel
- Distanciel synchrone
- Distanciel asynchrone
Moyens et supports pédagogiques
- Apports des connaissances communes.
- Mises en situation sur le thÚme de la formation et des cas concrets.
- Méthodologie d'apprentissage attractive, interactive et participative.
- Equilibre théorie / pratique : 60 % / 40 %.
- Supports de cours fournis au format papier et/ou numérique.
- Ressources documentaires en ligne et références mises à disposition par le formateur.
- Pour les formations en présentiel dans les locaux mis à disposition, les apprenants sont accueillis dans une salle de cours équipée d'un réseau Wi-Fi, d'un tableau blanc ou paperboard. Un ordinateur avec les logiciels appropriés est mis à disposition (le cas échéant).
Modalités d'évaluation et de suivi
En amont de la formation :
- Recueil des besoins des apprenants afin de disposer des informations essentielles au bon déroulé de la formation (profil, niveau, attentes particuliÚres...).
- Auto-positionnement des apprenants afin de mesurer le niveau de départ.
Â
Tout au long de la formation :Â
- Ăvaluation continue des acquis avec des questions orales, des exercices, des QCM, des cas pratiques ou mises en situation...
Â
A la fin de la formation :Â
- Auto-positionnement des apprenants afin de mesurer l'acquisition des compétences.
- Evaluation par le formateur des compétences acquises par les apprenants.
- Questionnaire de satisfaction à chaud afin de recueillir la satisfaction des apprenants à l'issue de la formation.
- Questionnaire de satisfaction à froid afin d'évaluer les apports ancrés de la formation et leurs mises en application au quotidien.
Informations sur l'admission
Modalités d'admission
- Admission sans disposition particuliĂšre