Aller au contenu principal

PLB CONSULTANT : 01. Python, programmation Objet

Organisme

PLB CONSULTANT
3-5 RUE MAURICE RAVEL
92300 LEVALLOIS PERRET
Voir toutes ses formationsAutres organismes proposant cette formation

Durée

35 heures

Modalités

Formation
  • Classe virtuelle
  • Présentiel
Évaluation

Travaux pratiques. Auto-évaluation en début et en fin de formation.

Prix

Inter
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
1470€ HT / personne
Intra
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
5880€ HT / groupe
4 stagiaires minimum

Public

Développeurs, ingénieurs, chefs de projets proches du développement.

Pré-requis

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

Objectifs pédagogiques

- Connaître la syntaxe du langage Python 

- Acquérir les principes de la programmation objet 

- Mettre en œuvre les fonctionnalités des modules Python et les bonnes pratiques associées 

- Savoir concevoir des interfaces graphiques 

- Appréhender l’utilisation des outils de test et d'évaluation d'un programme Python

Programme détaillé

 

Bien commencer avec Python

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

Objectifs : Prendre en main rapidement son environnement de développement

Description : Premier programme simple interactif de saisie et d’affichage de texte afin de prendre en main l'interpréteur Python. Un second programme non interactif permet de voir l’aspect automatisation de Python.

 

Les bases de Python (la syntaxe, les types)

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

Travaux pratiques

Objectifs : Mettre en œuvre la syntaxe fondamentale de Python 

Description : Saisie de notes dans un tableau numpy, affichage de la moyenne, de la plus petite et de la plus grande note. Chargement des notes depuis un fichier CSV (avec en tête), recherche du meilleur étudiant.

 

Programmer objet en Python

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

Objectifs : Savoir programmer objet en Python. Comprendre les liens entre les classes.

Description : Mise en œuvre progressive d’un modèle objet en Python CLASSE, ELEVE, EXAMEN, NOTES regroupant l’ensemble des concepts vus dans ce chapitre et favorisant la réflexion sur les bonnes pratiques (encapsulation, héritage ? composition ?) tout en prenant en main la syntaxe de façon concrète.

 

Types de données évolués

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

Objectifs : Savoir utiliser les listes en Python

Description : Ajout à la classe ELEVE de propriétés (utilisation des list et set) sous la forme de label inclinés (utilisation de la librairie Matplotlib)

 

Compléments sur le langage Python

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

Objectifs : Savoir utiliser les itérateurs

Description : Modification de la classe ResultatExamen afin qu'elle implémente un itérateur. Afficher dans un log les données qu'elle contient via l'utilisateur de l'itérateur (librairie logging)

 

Les modules de Python

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 Virtualenv

Travaux pratiques

Objectifs : Maîtriser l’utilisation des modules en Python

Description : Création d’un nouveau module en restructurant le projet précédent afin que les 2 classes Resultat et ResultatExamen soient dans un package note. On écrit ces données dans un fichier texte (librairie csv). On modularise notre projet afin de simplifier sa maintenance et sa livraison en respectant les bonnes pratiques.

 

Gestion des données (fichiers, SGBD, XML)

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

Filtrer les données grâce aux expressions régulières

Présentation de la manipulation de flux XMl en Python (ElementTree)

Manipuler des fichiers CSV 

Travaux pratiques

Objectifs : Savoir dialoguer avec une base de données de type SQL en encapsulant les traitements de lecture/écriture pour respecter les bonnes pratiques d’architecture

Description : Construction d’un accès à une base MySQL ou PostgreSQL (librairies panda, psyco)

Dans un module persistance, on construit une classe ResultatDao, qui permet toutes les actions standards sur la table résultats (insertion, mise à jour, suppression, lecture ciblée ou complète de la table).

 

Création d’interface graphique 

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

Travaux pratiques

Objectifs : Mettre en œuvre une IHM en Python avec TkInter

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

 

Qualité et outils 

En quoi consiste l’assurance qualité d’un programme Python (QA) ?

Vue d’ensemble de la « trousse à outils » proposée au développeur 

Utiliser le plugin Eclipse pour Python (Pydev)

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

Objectifs : Bien comprendre le champ fonctionnel de chaque outil présenté dans ce chapitre et savoir les utiliser

Description : Audit de code Python ne respectant pas les standards professionnels en terme de lisibilité. Bonnes pratiques dans le Deboguage d’un programme. Mise en œuvre de tests unitaires simples. Génération de documentation. Repérage des parties consommatrices d’un programme Python d’analyse de données (profiling de l’application du TP d’extraction des données de data.gouv.fr).

Sessions

Filtrer les résultats
Modalités pédagogiques
Formation synchrone se déroulant avec la présence physique du (des) formateur(s) et du (des) apprenant(s) réunis dans un même lieu de formation.
Formation combinant des séquences en présentiel et des séquences à distance synchrones ou asynchrones.
Formation à distance, asynchrone, s’appuyant sur une plateforme d’apprentissage, pouvant être complétée par d’autres modalités de formation à distance (visio-conférence…)
Formation à distance, synchrone, s’appuyant sur un dispositif de visio-conférence. La classe virtuelle recrée à distance les conditions d’une formation en salle traditionnelle.
Type de formation
La formation en Inter est dispensée pour un groupe de salariés d’entreprises différentes.
La formation en Intra est dispensée pour un groupe de salariés d’une seule et même entreprise.
Options
Les compétences professionnelles visées par la formation sont validées via un test permettant d’obtenir une certification officielle.
Ces sessions ne peuvent être ni annulées ni reportées par l’organisme de formation.