Durée: 2 jours

Dates: mercredi 3 et jeudi 4 décembre 2014 (9h-17h)

Lieu: INRIA Saclay

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

Nombre de participants: 10 maximum

Introduction

A l'heure actuelle, le monde du développement en Python est dual : deux versions du langage (la 2 et la 3) se partagent le devant de la scène 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 mettant l'accent 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 participant doit apporter son propre ordinateur portable où il a installé au préalable Python 2.7.x et Python 3.x.

Programme (provisoire)
  • Introduction
    • Python en quelques phrases
    • L’esprit Python
    • Une courte histoire de Python
    • 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
    • Les conventions de codage
  • 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
    • Programmation fonctionnelle
  • L’approche objet
    • Classes et instances
    • Les attributs
    • Les méthodes
    • La méthode __init__()
    • La documentation des classes
    • Héritage
    • Old style / New style classes
    • Polymorphisme
    • Encapsulation
    • Agrégation d’objets
    • Méthodes de classe
    • La surcharge des opérateurs
  • Modules et paquets
    • Modules
    • Paquets
  • La bibliothèque standard en bref
    • 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
    • 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__