- ACN_ATLAS
- Cours pratique
- Informatique
Formation Python, programmation objet
Python par la pratique

- Durée
- 5 jours
- Niveau
- Fondamental
- Modalités
- Présentiel / Distanciel
Description de la formation Python
Cette formation vous propose de progressivement découvrir le langage Python dans un contexte objet en mettant en œuvre progressivement une application fil rouge qui reprend les concepts fondamentaux du langage.
Après avoir pris en main votre environnement et développé rapidement un premier programme Python simple, vous approfondissez son utilisation dans une approche objet dont vous acquérez les principes (classes, objets, instance, …). Etant donné les possibilités très orienté « données » de Python vous approfondissez les structures de données manipulées au quotidien comme les listes, tableaux, etc. et apprenez à utiliser plus globalement les fonctions standards proposées par le langage et à organiser votre code dans une approche professionnelle (modules métiers, accès aux données, etc.).
Vous détaillez ensuite comment se connecter et manipuler des données externes selon des formats et des sources variés (SGBD, XML, JSON, …) plutôt sous un angle statique puis abordez l’aspect dynamique des échanges (http, API, …) afin de disposer d’une vue complète sur les fondamentaux de « Python et les données » sous un angle conceptuel mais aussi technique (mise en œuvre).
Ensuite, nous faisons le lien avec la restitution de nos programmes Python en abordant la conception des interfaces graphiques et les outils associés comme le standard Tkinter. Enfin, même si le chapitre sur les outils de tes et d’évaluation de la qualité d’un programme Python est présenté à la fin de ce programme nous les abordons pédagogiquement assez rapidement dans la formation pour que certaines attitudes deviennent des réflexes assimilés progressivement durant ces 5 jours de formations.
Le projet fil rouge consiste à développer un système de suivi simplifié des transactions bancaires d’un portefeuille client. Il a été conçu pour être facilement transposable à tout autre domaine (assurance, comptabilité, médical, etc.). On peut ainsi manipuler progressivement tous les concepts fondamentaux de Python (syntaxe, objets, structure de données, fonctions, modules, SGBD, API, tests) et terminer par une interface qui permet de visualiser concrètement nos acquis de la semaine (chargement d’un fichier de transactions, affichage d’un résumé, filtrage par catégorie, export au format JSON ou CSV).

Objectifs pédagogiques
Objectifs pédagogiques :
À l'issue de cette formation Python, vous aurez acquis les connaissances et compétences nécessaires pour :
- 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
Objectifs opérationnels
Savoir utiliser les principales fonctionnalités du langage de programmation Python pour développer des applications multiplateformes.
Programme
Contenu du cours, module par module
10 modules
- Pourquoi utiliser Python plutôt qu'un autre langage ?
- Exemples de projet en Python
- Différences entre les versions de Python
- Installation de Python (pré-requis, fichiers, arborescence détaillée)
- Fonctionnement de l'interpréteur Python
- Les apports de l'interpréteur interactif iPython
- Un premier programme...
Travaux pratiques
Description : Premier programme simple interactif de saisie et d’affichage de texte afin de prendre en main l'interpréteur Python. Passage en script du programme interactif précédent.
- Organisation du code (modules, package, importations)
- Recommandations de nommage
- Les types de base (entier, chaîne, réel, ...)
- Erreurs classiques sur les types
- Boucles (for), opérateurs, tests (if/else)
- Définition et appel de fonction
- Introduction à la syntaxe conditionnelle avec match/case
Travaux pratiques
Description : Écriture d’un script permettant de charger un fichier CSV contenant des transactions bancaires (date, libellé, montant, catégorie). Affichage simple des totaux (dépenses, revenus, solde) en s’appuyant sur la syntaxe de base (boucles, conditions, …) et les fonctions de base.
- Limites de la programmation « simplement » structurée
- Philosophie, concepts, et vocabulaire de la programmation objet
- Représentation des données en programmation objet (classes, propriétés)
- Représentation des traitements (méthodes)
- Contrôler l’accès aux données (encapsulation)
- Exemples de classes prédéfinies en Python permettant de profiter pleinement de l’approche objet
- Cycle de vie d’un objet (constructeur, destructeur)
- Accéder aux attributs et fonctionnalités de l’objet cible (self)
- Comment les objets communiquent entre eux ?
- Classe mère et classe fille (héritage)
- Des fonctions différentes avec … le même nom (polymorphisme)
- Héritage simple et héritage multiple
- La fonction super()
- Protection des traitements (public, protected, private)
- Le mécanisme de traitement des exceptions
- Exemple de formalisme UML (diagramme de classe)
- Tour d’horizon des classes fondamentales existantes en Python
- Notion de Design Patterns
Travaux pratiques
Description : Structuration objet de notre projet fil rouge, conception et implémentations des classes TRANSACTION, CLIENT, PORTEFEUILLE. Implémentation des méthodes de filtrage, de tri, et de calculs.
Travaux pratiques
Description : On enrichit le cahier des charges de notre application pour faire apparaitre de nouveaux besoins qui amènent à faire des choix d’héritage, de polymorphisme, etc. avec par exemple une classe TransactionRécurrente qui hérite de Transaction et des concepts de validation de transaction (source, auteur, est_validée par, …)
- Savoir choisir les bonnes structures de données
- Tuples, séquences et listes (append, extend, insert, ...)
- Fonctions utiles avec les listes (filter, map, reduce)
- Gestion des piles ou des files
- La puissance des dictionnaires (tableaux associatifs)
- Construire une liste sur la base d'une expression (compréhension)
Travaux pratiques
Description : On reprend notre fichier CSV contenant des transactions bancaires (date, libellé, montant, catégorie) et on le stocke dans un tuple pour figer les valeurs. On ajoute ensuite ces tuples à une liste de transactions que l’on analyse avec map, filter, et reduce pour ne garder que des transactions supérieures à un certain montant et les convertir en dollars. Ensuite reduce permet de calculer le total global dépenses. On créé ensuite une liste des catégories où les dépenses dépassent 1000€ et une pile pour simuler une liste d’actions utilisateurs pour annuler les dernières opérations.
- Générateurs et itérateurs
- Scripts exécutables
- Opérateurs associés aux listes
- Enchaînement de tests par rapport aux listes
- Comparer les séquences
Travaux pratiques
Description : Création d’une classe portefeuille avec itérateur. Elle contient une liste de transactions et permet d’itérer sur les transactions par date croissante.
- Philosophie de Python avec les modules (standard, tiers, ...)
- Tour d'horizon des modules standards
- Module re (expressions rationnelles)
- Modules os et sys (services du système d'exploitation)
- Module csv (fichiers structurés par séparateur)
- Comment trouver les modules ?
- Installer des modules tiers (setuptools, EasyInstall)
- Le dépôt central : Python Package index (Pypi)
- Importer des modules
- Mieux gérer son environnement avec venv, pipx, poetry ou pip-tools
Travaux pratiques
Description : On crée un module pour nos classes (le modèle des données), un module pour les services offerts (filtrage, calculs, résumé, etc.), un module dédié aux entrées/sorties (chargement/sauvegarde de notre CSV dans notre projet). On utilise bien sûr des modules standards comme CSV ou RE (filtrages des données avec les expressions régulières) pour montrer comment les modules existants cohabitent avec nos propres modules.
- Accéder aux fichiers (objet File)
- Conformité des modules Python pour accéder à une base de données (DB-API
- Python et requêtes SQL, ORM avec SQLAlchem
- Filtrer les données grâce aux expressions régulière (RE)
- Présentation de la manipulation de flux XMl en Python (ElementTree)
- Manipuler des fichiers CSV
Travaux pratiques
Description : Notre application évolue et on abandonne notre CSV pour dialoguer avec une base de données (MySQL ou PostgreSQL). On complète donc l’exercice précédent en construisant une classe TransactionDao dans notre module dédié aux entrées sorties, qui permet toutes les actions standards sur la table Transaction (insérer, mettre à jour, supprimer, lister, rechercher).
- Le format JSON : encodage/décodage, gestion de structures complexe
- Sérialisation avec dataclasses et pydanti
- Principe des API et des Web Service
- Requêtes HTTP avec requests (GET, POST, headers, paramètres
- Récupérer des données via des API externe
- Traitement et validation des données reçues (modèles Pydantic, typage fort, gestion des erreurs)
Travaux pratiques
Description : On cherche à actualiser en temps réel notre application avec des actualités économiques. Pour cela on va appeler une API publique qui nous retourne un taux de change au format JSON. On définit un modèle de validation avec Pydantic et on créé 2 classes TauxChange et Reponse API. Affichage ou traitement des données dans le terminal ou via un petit script CLI. Bonus : exporter les résultats vers un fichier CSV ou JSON local.
- Spécificités du développement d’interface graphique (programmation événementielle)
- Présentation de la bibliothèque TkInter.
- Les principaux conteneurs.
- Présentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text...).
- Le gestionnaire de fenêtres.
- Le placement des composants, les différents layouts.
- La gestion des événements, l'objet event.
- Les applications multifenêtres.
- Un petit mot sur la bibliothèque Qt
- Les autres librairies d’IHM (PyQt, PySide, ..) les IHM web (flask/streamlit)
Travaux pratiques
Description : Développement d’une maquette pour compléter l’atelier précédent sous forme graphique (menu, boîtes de dialogue, liste, boutons, …) afin de proposer une interface pour la saisie des actions de manipulations des données et l’affichage des résultats
- En quoi consiste l’assurance qualité d’un programme Python (QA) ?
- Vue d’ensemble de la « trousse à outils » proposée au développeur
- Utiliser les plugins des IDEs IntelliJ ou VSCode
- Rechercher des bugs avec PyChecker
- Vérifier le respect des standards avec PyLint
- Utiliser le guide de style PEP 8 (Python Enhancement Proposals)
- Générer de la documentation
- Disposer de statistiques sur l’exécution de son programme (profiling)
- Comprendre l'intérêt des outils de Tests (Doctests, Unit tests)
Travaux pratiques
Description : Audit de code Python ne respectant pas les standards professionnels en termes de lisibilité. Bonnes pratiques dans le déboguage d’un programme. Mise en œuvre de tests unitaires simples dans le cadre de notre projet fil rouge. Génération de documentation. Repérage des parties consommatrices d’un programme Python d’analyse de données (profiling de notre application fil rouge).
Travaux pratiques
L’approche pédagogique repose sur un apprentissage par la pratique structurée autour d’un projet fil rouge parlant à tout le monde (transaction bancaire) et surtout facile à adapter aux univers des différents participants (banque, assurance, compta, scientifique, médical, …) à partir du moment où les données se présentent sous forme matricielle il suffit de changer les thématiques des colonnes à son propre contexte métier. Ici la formation cherche à décliner les objectifs pédagogiques de façon progressive en posant toujours une problématique avant d’y répondre. Les concepts ne sont jamais « imposés » ils sont devinés par les participants que l’on essaie de guider autour de leur propre réflexion. Ensuite la syntaxe Python se retient naturellement ou en tout cas se retrouve plus facilement tout seul après la formation.
Dans cet esprit l’apport de la programmation objet est introduit par les problématiques posées par une approche non objet, de même qu’on aborde l’intérêt des structures de données proposées par Python en se posant la question comment ferait-on sans les listes, les tuples, les tableaux, etc. ? Comment on organise notre code Python sans les modules ? De même qu’on réfléchira avec les participants sur les spécificités d’un flux de données (stream) et comment le gérer pour un développeur avant de présenter les solutions proposées par Python. ll est donc important de préciser systématiquement pourquoi on fait tel ou tel TP (objectifs) avant d’en détailler le contenu technique afin d’être cohérent avec cette démarche de poser une problématique avant d’y répondre. Mais cela est facilité par notre ingénierie pédagogique qui part du TP pour construire les explications théoriques nécessaires à sa réalisation et non l’inverse.
Programme mis à jour le 08/07/2026
Public concerné
Ce cours s’adresse à tout développeur souhaitant acquérir les bases de la programmation en Python, que ce soit pour concevoir et développer une nouvelle application ou maintenir une application existante.
Elle intéressera également les ingénieurs, statisticiens ou data scientist ayant besoin de connaître les fondamentaux de Python dans le cadre d’un traitement ultérieur de données ou de manipulation de données.
Enfin, compte tenu du caractère informatique généraliste du langage Python, cette formation pourra intéresser toute personne désirant consolider sa culture en développement logiciel (objet, bibliothèques, data, IHM, tests) pour participer aux projets d’entreprises avec plus de recul technique.

Prérequis
Les participants à cette formation doivent connaître un langage de programmation, car la formation ne prévoit pas de revenir sur les bases de la programmation (variables, test, boucle, fonction…). L’assimilation de ces concepts en même temps que la syntaxe de Python reste cependant possible mais constitue un risque pédagogique important.
Il est souhaitable (mais pas indispensable) de connaître la programmation objet car la formation prend le temps de présenter les concepts objets fondamentaux (classe, objet, instance, propriétés, méthodes, héritage) puis dans un second temps leur mise en œuvre en Python.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
4,6/5
238 avis
« Mon avis sur le contenu du stage : "C'est ma première je suis plus que satisafait, le professeur a une pédagogie qui correspond à mes critères , il est très à l'écoute, prend le temps de bien expliquer, répond clairement à mes questions, le support de cours est très bien.De mon côté je pense que même si j'ai des bases en programmation, je ne suis pas assez rapide pour faire les exercices dans les temps impartis ( c'est plus de moi que viens le problème en fait).Remerciez le professeur car il a vraiment bien organisé les sessions et a rendu cette semaine de formation très agréable.Je vais approfondir ma connaissance de ce langage car c'est passionnant.Un grand merci à toutes vos équipes et continuez!! J'espère que j'aurais l'occasion de suivre des formations supplémentaires avec votre organisme.Et aussi la méthode en remote est très utile pour moi qui la privilégie. Tous mes encouragements!! Enyacio :D" Mon avis sur le formateur : "Mes commentaires laudatifs vont dans le même sens que ceux du paragraphe précédent ( j'ai la flemme de tout retaper ) ,mais c'est très très bien !! Continuez ,j'aime beaucoup :)" Ce que j'ai le plus apprécié : "La qualité pédagogique du formateur, sa disponibilité , son écoute, et le temps qu'il prend pour expliquer de façon très claire." Ce que j'ai le moins apprécié : "Ma propre lenteur de compréhension et d'application ( sérieusement tout a été très bien du début à la fin, c'est à moi de m'améliorer)." »
EF « Mon avis sur le contenu du stage : "En session de rattrapage car nous n'avions pas tout vu la fois précédente. On en a vu cette fois un peu plus cette fois-ci, mais clairement le contenu voulu ne sera jamais atteint en 4 jours. " Mon avis sur le formateur : "Prends le temps d'expliquer le plus clairement possible, de manière posée. Beaucoup de proposition de TP ce qui est très interessant. Attention cependant aux digressions: par exemple, passer près de 2h à expliquer ce qu'est un fichier xml et comment en fabriquer est clairement hors sujet par rapport au codage en python... ce qui met en retard pour le reste." Mon avis sur la salle de formation : "En formation à distance, le adobe connect est super et fonctionne à merveille. Attention cependant à ne pas présumer de l'ouvertue de nos réseaux d'entreprise vers l'exterieur, ce qui m'a obligé (mais très petite contrainte pour moi) à ne pas pouvoir travailler à distance sur le pc dans vos locaux." Ce que j'ai le plus apprécié : "L'organisation de la formation (envoi du materiel, mail d'infos, etc)" »
HARTEMANN ChristopheMICHELIN « Mon avis sur le contenu du stage : "Beaucoup de documentations bien expliquées par Jeremy-Mathieu. " Mon avis sur le formateur : "La formation complète. On a été au bout en partant des fondamentaux à la gestion des bases, bibliothèques, API... Une belle projection sur toutes les possibilité qu'offre l'outil python mis en visibilité. Recommandation : Adapter le niveau des classes en fonction des pré-requis et des compétences de développements par chaque ressources. Avoir une classe moyenne pour des ressources ayant un minimum de pre-requis en compréhension de langage et avoir un avancement plutôt équilibré. Une classe experte avec des ressources qui ont une routine de programmation sur des langages, C++, java.. qui peuvent partir sur x heures de bases et x heures +++ de rythme soutenu." Ce que j'ai le plus apprécié : "Un environnement de formation très proactif et sympa" Ce que j'ai le moins apprécié : "Lenteur de la machine virtuelle de PLB - ça plante" »
BMCAPGEMINI LYON
Les avis figurant ci-dessus sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.
Formations liées
- Scraping et manipulation de données avec PythonRéf. OSCR4 joursAvancéProchaine session : 20 oct.2 490 €
- Snowpark pour PythonRéf. SNOW4 joursIntermédiaireProchaine session : 24 nov.2 490 €
- Web Services REST - Mise en œuvre avec PythonRéf. OPYW3 joursIntermédiaireProchaine session : 19 oct.2 090 €
- Dask : mise en œuvre de la programmation parallèle en PythonRéf. DASK3 joursIntermédiaireProchaine session : 21 déc.2 550 €