• éligibleCPF
  • AC

Formation Python, perfectionnement

4.5 sur 5 étoiles

5 étoiles
50%
4 étoiles
50%
3 étoiles
0%
2 étoiles
0%
1 étoile
0%
Voir les 8 avis
(8 avis)
Durée 4 jours
Niveau Avancé
Classe à distance
Possible

Vous pouvez suivre cette formation en direct depuis votre domicile ou votre lieu de travail. Plus d'informations sur notre solution de classe à distance...

Référence OPYA
Éligible CPF Oui

Cette formation Python Développement Avancé vous apprend à maîtriser les techniques avancées de programmation en Python que vos applications soient exigeantes (parallélisme, calcul scientifique, …) ou simplement soucieuses de profiter des possibilités de Python pour proposer des applications bien écrites et faciles à maintenir dans les projets professionnels. 

Le succès grandissant de Python s’explique en partie par la richesse de ses bibliothèques et notamment dans les domaines en expansion actuellement comme l’analyse de données, le calcul scientifique, ou encore le machine learning. Nous vous présentons ces bibliothèques (anciennes et récentes) qui ont contribué au succès de Python (NumPy, Pandas, Matplotlib, Ipython, SciPy, MapReduce, PySpark, PySNMP, …) à travers des exemples qui traduisent tout leur potentiel et qui vous feront gagner du temps pour une première utilisation.

Objectif opérationnel :

Connaître et mettre en œuvre les notions avancées du langage Python et ses puissantes bibliothèques pour écrire des programmes bien structurés, robustes et efficaces.

Objectifs pédagogiques :

Concrètement, à l'issue de cette formation Python Développement Avancé, vous saurez :

  • Optimiser vos programmes grâce au multi-threading et à la supervision (monitoring)
  • Connaître les manipulations avancées en Python : Context Manager, métaclasses, injection et introspection du code…
  • Maîtriser la manipulation des données
  • Connaître et savoir exploiter à un premier niveau les bibliothèques qui font (ou on fait) le succès de Python (Mathématiques, Scientifique, IA, Machine Learning, Réseau)

Public :

Ce cours s’adresse aux développeurs déjà familiarisés avec le langage Python souhaitant parfaire ou enrichir leur connaissance de ce langage en étant pertinent dans les choix d’implémentations (structures de données, fonctions utilisées, architecture du code, etc.). Elle intéressera particulièrement toute personne cherchant à comprendre comment optimiser une application existante en Python (monitoring, parallélisme) ainsi que toute personne participant à un projet de développement en Python dans un projet scientifique, d’analyse de données, d’IA, de machine learning, ou encore de supervision réseau et qui souhaite disposer d’une vue claire sur les bibliothèques disponibles et la mise en œuvre des standards.

Prérequis :

Avoir suivi la formation Python (OPYT) ou posséder des connaissances équivalentes.

Les participants doivent posséder de bonnes connaissances de développement en Python validées par au moins un premier projet de développement. La formation ne revient pas sur la syntaxe de base de Python et se contente d’un rappel en début de formation. Ces prérequis sont indispensables pour garantir une compréhension continue de la formation et pour participer aux travaux pratiques de façon active.

J1

Rappels importants sur le langage et compléments

Le typage fort en Python
Schéma de fonctionnement de la mémoire d’un programme Python (variables locales, passage par valeur/référence, variables non mutable, etc.)
Rappels sur les différences entre tableaux, listes, dictionnaires, slices, etc.
Les fonctions anonymes (lambda)
Syntaxe d’appels étendus (*args, **kwargs)
Intérêts de déterminer le type d’un objet, d’une méthode, ou d’un module (introspection)
Exemple de synthèse sur les concepts objets en Python (classes, propriétés, méthodes, instances)
Exemple de synthèse sur la syntaxe du langage (variables, boucles, tests, exceptions, …)
Travaux pratiquesObjectif : Valider que les concepts et la syntaxe de Python sont maîtrisés 
Description : Quiz ludique (bêtisier des erreurs classiques en Python). Écriture d’une fonction qui extrait une sous liste à partir d’une liste selon une fonction de critères passée en argument. Écriture d’une fonction qui « nettoie » un tableau passé en argument selon un dictionnaire de symboles « interdits » et présents dans un fichier texte.

Packager et déployer votre code Python

En quoi consiste le packaging de code ?
Projet vs bibliothèque  
Comment décrire le module packagé (setup.py) ?
Le Python Package Index (PyPI, Métadonnées).
Les outils pour packager ses librairies (disutils, setuptools)
Installer des librairies tierces (pip, easy_install).
Isoler les environnements de différents projets (virtualenv)
Gérer un projet avec pipenv
Créer un wheel distribuable avec setup.cfg
Compiler le code Python en un exécutable avec nuitka
Travaux pratiquesObjectif : Valider que l’environnement de développement est maîtrisé ainsi que le packaging de ses applications
Description : Création d‘un environnement virtuel (virtualenv) pour tester l’installation de modules de versions différentes sur des versions différentes de Python (plusieurs projets sur une même machine sans interférence). Packaging de l’une de nos propres librairies et installation dans l’environnement virtualisé des autres participants.
J2

Manipulations avancées des primitives en Python

Générer du code à la volée : factories puis métaclasses
Décorateurs à plusieurs niveaux
Context manager et décorateur à la fois
Au delà de yield : la méthode send() des générateurs
Monkey paching et autres injections de code
Introspection du code
Travaux pratiquesObjectif : Savoir mettre en œuvre l’introspection et les factories
Description : Mise en œuvre de l’introspection (appel de fonction avec arguments dans le « désordre »)
Utilisation d’une classe différente selon le processus de connexion (login/password ou annuaire par exemple) avec les usines de classe (Factories)

Performances et parallélisation

Programmation non blocante avec les threads
Le GIL et les limites des threads
Exploiter plusieurs coeurs avec le multiprocessing
I/O asynchrone avec asyncio
Les outils pour lire l’activité (Timeit, cProfile)
Calcul distribué avec la librairie Celery
Les faiblesses du multithreading
Travaux pratiquesObjectifs : Savoir manipuler les threads en Python pour gagner en performances
Description : Mise en œuvre de l’algorithme Map Reduce avec Celery. Observations des appels et du temps passé dans les différentes fonctions pour diagnostiquer où se situe le goulot d’étranglement.
J3

Manipulations avancées des données

Rappels sur les formats de données structurées : CSV, flux XML et JSON
Manipulation des données issues de ces fichiers par des structures Python adaptées
Le parseur XML ElementTree
Fonctions d‘accès et de download de données en ligne
A quoi sert un ORM (Object-relational Mapper) ?
Synchronisation des objets Python avec une base SQL (ORM sqlAlchemy)
Principes des API et des Web Services
Consommation des API et des Web Services en Python
Travaux pratiquesObjectif : Savoir manipuler des flux XML ou JSON 
Description : Capture de séries financières (indices de marché et cours de bourse) à partir d'un fichier CSV représentant des données issues de data.gouv.fr, on extrait une statistique (décrite en XML) et on l’affiche dans un bar graphe (utilisation de la libraire PySpark). Cet atelier permet d’appréhender la puissance du moteur Spark combiné à la simplicité de Python pour l’analyse de données.

La représentation graphique de données en Python

Introduction aux bases de la visualisation de données
Focalisation sur la génération de graphes grâce à la librairie Matplotlib : démonstration de l’application de graphes Matplotlib à la visualisation de problèmes concrets
Travaux pratiquesObjectif : Savoir utiliser la bibliothèque MatplotLib
Description : Poursuite de l’atelier précédent en générant des visualisations graphiques illustrant les analyses de données réalisées
J4

Présentation des grandes librairies Python

En quoi consiste l’analyse de données ?
Introduction au concept de Dataframe
Manipuler et analyser les données avec Pandas
Analyser les données avec NumPy et SciPy
Fonctions de manipulation et de calcul matriciel (Numpy)
Fonctions de Statistiques Descriptives (SciPy)
Fonctions de comparaison de populations, mesures d’association, etc. (SciPy)
Fonctions de classification automatique (SciPy) : k-means
Introduction aux concepts et au vocabulaire de l’IA (apprentissage supervisé/non supervisé)
Intelligence Artificielle et algorithmes d'apprentissage avec Scikit-Learn
Tracer et visualiser les données avec Matplotlib
Créer un serveur internet WEB, FTP, etc. avec Twisted (aperçu)
Dialoguer avec tout matériel compatible SNMP avec PySNMP (aperçu)
Travaux pratiquesObjectifs : Comprendre le champ fonctionnel de chaque librairie et leurs dépendances ou complémentarités. Savoir mettre en œuvre NumPy et SciPy pour le calcul scientifique et l’analyse de données.
Description : Quizz sur les bibliothèques (quelles bibliothèques utiliser pour quel traitement formulé sous la forme d’un besoin métier  ?). Mise en œuvre de NumPy et SciPy dans le contexte de l’analyse financière (Collecte de données, intégration, nettoyage, calcul, analyse). Visualisation avec Matplotlib. 

Les travaux pratiques sont conçus dans une approche pédagogique qui permet de valider les acquis et pas seulement de disposer d’un exemple concret de mise en œuvre. Les concepts importants sont donc toujours au cœur du TP et la trame de ces derniers fait office à la fois de synthèse réutilisable pour vos propres développements futurs en Python mais aussi de révision lorsque vous vous replongerez dedans.

Tous les chapitres de la formation font l’objet de travaux pratiques et vous aurez également l’occasion de mettre en œuvre, entre autres, les bibliothèques très utilisées comme Pandas, NumPy et SciPy sans que l’on cherche à être exhaustif sur leurs possibilités mais afin que vous soyez autonome pour un premier niveau d’utilisation.

Date de mise à jour du programme : 20/06/2024

Dates et lieux

Du 16 au 19 juillet 2024
Session bientôt complète
Lieu
Distanciel
Durée
4 jrs
2440 € HT
Du 16 au 19 juillet 2024
Session bientôt complète
Lieu
Paris
Durée
4 jrs
2440 € HT
Du 10 au 13 septembre 2024
Session garantie
Lieu
Distanciel
Durée
4 jrs
2440 € HT
Du 10 au 13 septembre 2024
Session garantie
Lieu
Paris
Durée
4 jrs
2440 € HT
Du 15 au 18 octobre 2024
Lieu
Distanciel
Durée
4 jrs
2440 € HT
Du 15 au 18 octobre 2024
Lieu
Paris
Durée
4 jrs
2440 € HT
Du 04 au 07 novembre 2024
Lieu
Distanciel
Durée
4 jrs
2440 € HT
Du 04 au 07 novembre 2024
Lieu
Paris
Durée
4 jrs
2440 € HT
Du 10 au 13 décembre 2024
Lieu
Distanciel
Durée
4 jrs
2440 € HT
Du 10 au 13 décembre 2024
Lieu
Paris
Durée
4 jrs
2440 € HT

Logo partenaire action collective de l'OPCO Atlas Votre formation Python Perfectionnement prise en charge jusqu'à 100% des coûts pédagogiques ! * 

Depuis 2011, Atlas (ex-Fafiec) a sélectionné PLB Consultant pour vous proposer les meilleures formations autour du développement objet avec .NET, Java et C++. 
-  Sessions inter-entreprise sur Paris en province. 
-  Sessions intra-entreprise sur toute la France. 

* jusqu'à 100% des coûts pédagogiques selon votre branche d'activité dans la limite des fonds mutualisés dédiés aux actions collectives et en application des critères de prise en charge en vigueur (cf conditions détaillées sur le site d'Atlas)

Avis des participants à la formation Python, perfectionnement

Note moyenne de 4.5/5(8)

Les avis figurant ci-dessous 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.

PC
4/5

Mon avis sur le contenu du stage :

"Le cours a couvert plusieurs aspects tres diverses, avec la théorie et les exercises. Je pense que c'est une tres bonne continuation du premier cours Python Orienté Objets"

Mon avis sur le formateur :

"J'ai apprécié la disponibilité de Jeremy pour partager ses experiences et pour aider a résoudre les exercises. Ainsi que son intérêt pour améliorer la formation.La passion que lui montre dans les examples et cas d'etude (challenges) démontrent son experience et l'application des skills et concepts dans la practique, c'est tres intéressant savoir que les skills Python peuvent être utilises dans l'experience professionnel et les projets personnels. Merci Jeremy"

Ce que j'ai le plus apprécié :

"Dans le 1er cours Python on avait un support slides pour la théorie, avoir combiné les contenus dans 1 seul Jupyter notebook c'est mieux"

FL
4/5

Mon avis sur le contenu du stage :

"Il aurait fallu en complément que les sessions soient enregistrées en vidéo afin davoir un complément de correction au support fourni."

Ce que j'ai le moins apprécié :

"Les formations en distanciel ne sont pas adaptées à des grands groups. Nous étions 13 participent et onavait l'impression que seul 3 ou 4 étaient là. Les gransd moments de blanc que le prof a du mal à combler. Soit l'organisme fait du distantiel en petit comité soit si vous voulez faire des grands groupes re-proposer les formations en présentiel svp sinon c'est inhumain pour tous et dépriment. P.S. Ne me répondez pas qu'il y a des formation en présentiel car elles sont toutes reprogrammé en distentiel !"

AJ
5/5

Mon avis sur le contenu du stage :

"La formation est de très bonne qualité technique. La seule chose que j'aurais aimé dans les TP est d'avoir toujours un bout de code pour démarrer les TPs plûtot que de démarrer from scratch."

Mon avis sur le formateur :

"Rien à dire. Très bon intervenant"

Ce que j'ai le plus apprécié :

"Tres bonne qualité de la conversation teams."

Ce que j'ai le moins apprécié :

"Etant en distanciel, on n'entend pas toujours très bien les personnes qui sont en presentiel."

LAMBERT Hervé
5/5

Mon avis sur le contenu du stage :

"Qualité du contenu excellent. Excellent formateur qui adore Python, ça se sent."

Mon avis sur le formateur :

"Excellent "

Mon avis sur la salle de formation :

"Problème de retro projecteur en présentiel. C'était flou et très embêtant "

Ce que j'ai le plus apprécié :

"Le formateur, "

BC
4/5

Mon avis sur le contenu du stage :

"Manque des template pour les tp les plus poussés"

Mon avis sur le formateur :

"Manque les prévisions des horaires"

Ce que j'ai le plus apprécié :

"Machine VM bien configurée"

Ce que j'ai le moins apprécié :

"Mauvais son avec les participants dans la salle"

NGUYEN Thomas
5/5

Mon avis sur le contenu du stage :

"Le cours est très utile pour moi."

Mon avis sur le formateur :

"Je suis très content. Jérémy est un bon formateur, très pédagogique"

Ce que j'ai le plus apprécié :

"tous"

Ce que j'ai le moins apprécié :

"non"

ZARGAOUI Sami
5/5

Mon avis sur le contenu du stage :

"Excellente formation."

Mon avis sur le formateur :

"Formateur très pédagogue et disponible."

Ce que j'ai le plus apprécié :

"La compétence technique du formateur et sa disponibilité."

LC
4/5


Formations Informatique
et Management
en ligne à ce jour

+
Stagiaires dans nos salles
de cours sur
l'année

%
De participants satisfaits
ou très satisfaits de nos
formations


Formateurs experts
validés par
PLB