Durée: 2 jours

Dates: jeudi 15 et vendredi 16 juin 2017 (9h30-17h30)

Lieu: INRIA Saclay - salle Grace Hopper du bâtiment Turing

Langage: La formation est dispensée ** en français **

Pré-requis (fort): la pratique d'au moins un autre langage de programmation

Nombre de participants: 12 inscrits

Description

A l'heure actuelle, le paysage du développement logiciel en Python est marqué par la coexistence de deux versions du langage (la 2 et la 3) et cette situation risque de durer encore un moment.

Pour prendre en compte cette réalité, la présente introduction met en perspective les deux versions de Python, tout en insistant plus particulièrement sur la plus récente d'entre elles.

En s’appuyant sur les points communs entre Python et les langages de programmation le plus répandus, on se propose ici de faire ressortir les spécificités de Python et d’introduire, aussi tôt que possible au cours de l’exposé, les idiomes et les bonnes pratiques permettant d’écrire des programmes lisibles et efficaces, correspondant à l’esprit de ce langage.

Chaque stagiaire doit venir avec un ordinateur portable et avoir installé au préalable Python version >= 3.5.x. Si le système d'exploitation propose une version de Python trop ancienne on peut installer le paquet Anaconda (https://www.continuum.io/downloads) ou Miniconda (http://conda.pydata.org/miniconda.html)

Important

Il ne s'agit pas d'une formation "Python scientifique", autrement dit, les bibliothèques dédiées au calcul numérique (numpy, scipy, pandas, ...) ne seront pas évoquées lors de cette formation.

Les composants les plus utilisés de la bibliothèque standard seront abordés au fil de l'eau, en même temps que les concepts du langage. Dans la limite du temps disponible, d'autres composants standard pourront être abordés plus en détail lors de la dernière demi-journée.

Plan de la formation (provisoire)
  • Introduction
    • Python en quelques phrases
    • Python et les autres langages
    • Découverte de l’interpréteur, premiers programmes
  • Les éléments du langage
    • Une vue d’ensemble
    • Les entrées/sorties standard
    • Les structures de contrôle
    • Le types de base
  • Modules et paquets
    • Modules
    • Paquets
  • Les fonctions
    • Une vue d’ensemble
    • La portée des variables
    • Signatures des fonctions
    • La documentation des fonctions
    • Fonctions anonymes (lambda)
  • Concepts avancés
    • Les fermetures (closures)
    • Les décorateurs de fonctions
    • Les générateurs
    • Fonctions récursives
  • L’approche objet
    • Classes et instances
    • Les attributs
    • Les méthodes
    • La méthode __init__()
    • La documentation des classes
    • L'héritage
    • Old style / New style classes
    • Polymorphisme
    • Encapsulation
    • Agrégation d’objets
    • Méthodes de classe
    • La surcharge des opérateurs
    • Conventions de nommage
  • La bibliothèque standard en bref (dans la limite du temps disponible...)
    • Les outils pour la programmation fonctionnelle
    • La manipulation des fichiers
    • Le module sys
    • L’interface avec le système d’exploitation
    • Les (sous)processus
    • Le module platform
    • L’accès à Internet en http
    • Compression des données
    • ConfigParser et json
    • Mesure des performances
    • Le module math
    • Le module random
    • Les expressions rationnelles (ou régulières)
  • Les tests
    • Le module doctest
    • Le module unittest
  • Outils divers
    • L’installeur Pip
    • Les environnements virtuels
    • Le débogueur pdb
    • Le module __future__
    • Le module six