Data analyste

Description

Cette formation présente concepts avancés et peu connus de Python : structures internes avancées, décorateurs, gestionnaires de contexte, itérateurs et leurs mises en œuvre respectives.

Public cible

  • développeurs confirmés
  • débutant s’abstenir

Tarifs (inter)

1650 € HT par stagiaire (pauses et repas inclus)

Durée

3 jours, 21 heures

Objectifs

  • S’approprier et s’orienter dans la grande diversité des bibliothèques internes de Python
  • Apprendre à privilégier l’utilisation de ces bibliothèques afin de faciliter la maintenance de vos applications
  • Maîtriser l’utilisation des techniques avancées du langage Python : Context Manager, Closures, Fonctions avancées, Itérateurs
  • Choisir les bonnes structures de données en fonction de la complexité des cas d’usage

Théorie / pratique

Chaque concept présenté est suivi d’une série d’exercices pour une mise en situation efficace.

35% théorie / 65% pratique

Prérequis

  • bonne maîtrise des fondamentaux du langage Python
  • pratique quasi quotidienne de ce langage.

Experts animant cette formation

Matthieu Falce

Matthieu Falce

Expert Python
En savoir plus
Yves Duprat

Yves Duprat

Développeur expert
En savoir plus

Programme

Rappels sur les bibliothèques utiles

  • La bibliothèque « logging »
    • Intérêt par rapport à la fonction print
    • Intérêts et principes
    • Mise en oeuvre d’un premier exemple (par programmation ou par fichier de configuration)
    • Modifier les filtres
    • Point sur les traces en multi-threading, en multi-processing
  • Les arguments en ligne de commande
    • La variable « sys.argv »
    • La bibliothèque « argparse »
    • La bibliothèque externe « click »
  • Les fichiers de configuration
    • La bibliothèque « configparser »
    • La bibliothèque « json »
    • Le traitement des fichiers YAML

Les structures de données avancées et leurs outils

  • Rappel sur les types en Python
    • Les types avancés (« Containers », « Collections », « Sequences », « Mapping »)
    • Propriétés des types et méthodes magiques (mutable, subscriptable, hashable, trucmuchable, …)
    • Introduction aux annotations
  • Programmation Orienté Objet Avancée
  • La bibliothèque « collections »
    • defaultdict,
    • Counter
    • deque 
    • namedtuple
  • Les fonctions de manipulation des collections
    • Fonctions « map »/ « filter » vs générateurs à la volée
    • Fonctions “all” et “any”
    • La bibliothèque « itertools », les itérateurs
  • Les bibliothèques « heapq » et « bisect »
    • Intérêts
    • Exemple de mise en œuvre

Techniques avancées

  • Fonctions avancées et pièges classiques
    • Le piège des paramètres par défaut de types mutables
    • L’opérateur logique « or » lors des affectations
    • Différentes façons de créer les fonctions (lambda, def)
    • Espaces de noms et règle LEGB (variables « local », « non local », « global » et concept de closure)
    • Paramètres à volonté avec *args et **kwargs
    • Fonctions d’ordres supérieurs
  • Les décorateurs (ou fonction englobante)
    • Présentation du concept
    • Les closures
    • Cas d’usage des décorateurs
    • Mise en œuvre (à l’aide de fonctions et de classes)
    • Paramètres de décorateurs
    • Études de décorateurs de la bibliothèque « functools » (@lru_cache, @wraps)
  • Les « Context Managers »
    • Présentation et cas d’usage (fichiers, bases de données, réseau, accès concurrent aux données...)
    • Intégration sur une classe avec les « dunder » méthodes spécifiques
    • Intégration sur une fonction avec la bibliothèque « contextlib »