Python | Programmation Objet Mixte : présentiel / à distance

DerniĂšre mise Ă  jour : 16/10/2025

Pré-inscription

Ajouter au panier

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

Avoir des connaissances de base en programmation (souhaitable en langage objet).

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

Nous consulter.

Modalités d'admission

  • Admission sans disposition particuliĂšre

Accessibilité

Nos formations peuvent ĂȘtre adaptĂ©es Ă  certaines conditions de handicap. Nous contacter pour toute information et demande spĂ©cifique.

Accessibilité à nos formations

Si vous ĂȘtes en situation de handicap, contactez-nous avant le dĂ©but de votre formation pour que nous puissions vous orienter efficacement et vous accueillir dans les meilleures conditions.

Inscription possible jusqu'à 10 jours avant le démarrage de la formation

Prochaines Sessions

  • Cette formation n'est pas programmĂ©e pour le moment.

    Contactez-nous pour planifier une session ensemble !

Dans la mĂȘme catĂ©gorie