L’environnement
Python est un langage clair, intuitif, massivement répandu, et devenu incontournable dans le traitement d’une multitude de tâches informatiques.
Objectifs pédagogiques
À l’issue de la formation, les stagiaires seront capables de :
- Suivre les bonnes pratiques de programmation
- Maîtriser les générateurs et les décorateurs
- Manipuler des outils de la librairie standard
- Débugger leur code
- Analyser les performances de leur code
- Améliorer la performance de leurs programmes
- Coder et déployer une application Python
Public concerné
Techniciens, ingénieurs, développeurs, scientifiques, enseignants.
Prérequis
Connaître le langage Python ou avoir suivi les formations « Python Débutant » et « Python Programmation Orientée Objet ». Une connaissance des commandes UNIX/LINUX est également recommandée. Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.
Programme de la formation
Introduction
- Installer Python
- Quel environnement de travail pour développer en Python ?
Bonnes pratiques
- Présentation du PEP 8
- Les outils pour vérifier le style du code
- Expressions idiomatiques en Python
- Pourquoi et comment faire du type hinting en Python ?
Méthodes avancées
- Les itérateurs et générateurs
- Les décorateurs
Parser les arguments de la ligne de commande
- Comment utiliser argparse ?
- Argparse et les arguments positionnels
- Argparse et les arguments optionnels
- Mixer arguments positionnels et optionnels
- Arguments optionnels et paramètres
- Paramètre en conflit
- Option obligatoire
- Raccourci
- Customiser l’aide
Le temps
- Le module time
- Le module datetime
- Le module timeit
Le debugger Python
- Qu’est-ce que le debugger
- Appeler le debugger
Les expressions régulières
- Syntaxe
- Les méthodes du module re
itertools
- Les itérateurs infinis et de répétitions
- Les itérateurs combinatoires
- Les itérateurs pour filtrer
- Les itérateurs pour grouper
- Les itérateurs pour chaîner
- Les itérateurs pour appliquer une fonction
- L’itérateur de parcours
Benchmarking – Mesure des performances
- Trouver les goulots d’étranglement
- Profiler l’usage mémoire
Améliorer les performances
- Définitions
- GIL : quelle conséquence pour le multithreading ?
- Pourquoi le multithreading en Python reste intéressant ?
- Utilisation de threading
- Race conditions
- Utilisation de multiprocessing
- asyncio
Les environnements virtuels
- Qu’est-ce qu’un environnement virtuel
- Gestion des environnements avec venv
- Gestion des environnements avec Anaconda
Développer et distribuer son programme
- Comment organiser son code ?
- La numérotation des versions
- Préparer son package
- Les tests
- La documentation
- Packaging et déploiement