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