Syntaxe du langage Python
- Les identifiants et les références. Les conventions de codage et les règles de nommage.
- Les blocs, les commentaires.
- Les types de données disponibles.
- Les variables, l'affichage formaté, la portée locale et globale.
- La manipulation des types numériques, la manipulation de chaînes de caractères.
- La manipulation des tableaux dynamiques (liste), des tableaux statiques (tuple) et des dictionnaires.
- La structure conditionnelle if/elif/else.
- Les boucles d'itérations while et for. Interruption d'itérations break/continue.
Travaux pratiques
Installation et prise en main de l'interpréteur Python.
La programmation Objet en Python
- Les particularités du modèle objet de Python.
- L'écriture de classes et leur instanciation.
- Les constructeurs et les destructeurs.
- La protection d'accès des attributs et des méthodes.
- La nécessité du paramètre Self.
- L'héritage simple, l'héritage multiple, le polymorphisme.
- L'implémentation des interfaces.
- L'utilisation du mécanisme d'exception pour la gestion des erreurs.
Travaux pratiques
Pratique des différents concepts objet au travers de l'implantation de l'étude de cas.
Programmation Orientée Objet avancée
- Les propriétés (property).
- Les itérateurs.
- L'héritage multiple et ses travers.
- Les Context Managers.
- Les classes et méthodes abstraites (ABC).
- Les métaclasses.
Travaux pratiques
Implémenter une métaclasse pour créer des classes de type singleton.
Déploiement et qualité
- Installer des librairies tierces (pip, easy_install).
- Le Python Package Index (PyPI).
- Packager ses librairies (distutils, setuptools).
- Déployer un environnement autonome (virtualenv et buildout).
Travaux pratiques
Packager une librairie et la déposer sur PypI.
Le parallélisme : optimiser les performances de vos programmes
- Profilez vos programmes avec Timeit et cProfile.
- Parallélisation : évitez le multithreading et foncez avec le multiprocessing.
- Répartition et consolidation (Map Reduce) de calculs avec Celery.
Travaux pratiques
Répartition et consolidation (Map Reduce) de calculs avec Celery.