Formation Python

Objectif de la formation:

Cette formation Python vous permettra d'acquérir les connaissances nécessaires à la programmation avec le langage Python. (durée de la formation) pour acquérir les bases du langage et disposer d'une bonne vue d'ensemble des différents modules. Vous saurez utiliser les bonnes structures de données pour tirer pleinement profit de la puissance de Python. L'accès aux données (fichiers, base) est également abordé ainsi que les aspects XML. De nombreux outils (Eclipse/Pydev, PyLint, PyChecker, ...) ou frameworks permettant une utilisation professionnelle de Python seront présentés (Zope, Plone, Django, Grok, ...). Les « bonnes manières » d'utilisation du langage seront présentées tout au long du stage dans un souci de concision, d'efficacité, et de lisibilité du code.

>>Contenu du cours Python:

Bien commencer avec Python

Pourquoi utiliser Python plutôt qu'un autre langage ?
Exemples de projet en Python
Différences entre les versions de Python
Installation de Python (pré-requis, fichiers, arborescence détaillée)
Fonctionnement de l'interpréteur Python
Les apports de l'interpréteur interactif iPython
Un premier programme ...

Les bases de Python (types, syntaxe)

Organisation du code (modules, package, importations)
Recommandations de nommage
Les types de base (entier, chaîne, réel, ...)
Erreurs classiques sur les types
Boucles (for), opérateurs, tests (if/else)
Définition et appel de fonction
« Toute la syntaxe » dans un programme de synthèse

La dimension objet dans Python

Définition et instanciation d'une classe
Méthodes et propriétés d'une classe
Exemples d'héritages
Le mécanisme des exceptions
Les classes incontournables

Types de données évolués

Savoir choisir les bonnes structures de données
Tuples, séquences et listes (append, extend, insert, ...)
Fonctions utiles avec les listes (filter, map, reduce)
Gestion des piles ou des files
La puissance des dictionnaires (tableaux associatifs)
Construire une liste sur la base d'une expression (compréhension)

Compléments sur le langage Python

Générateurs et itérateurs
Scripts exécutables
Opérateurs associés aux listes
Enchaînement de tests par rapport aux listes
Comparer les séquences

Les modules de Python

Philosophie de Python avec les modules (standard, tiers, ...)
Tour d'horizon des modules standards
Module re (expressions rationnelles)
Modules os et sys (services du système d'exploitation)
Module csv (fichiers structurés par séparateur)
Comment trouver les modules ?
Installer des modules tiers (setuptools, EasyInstall)
Le dépôt central : Python Package index (Pypi)
Importer des modules
Mieux gérer son environnement avec Virtualenv

Accès aux données (fichiers, SGBD)

Les objets de type File
La documentation
La spécification DB-API
Connexion à une base de données
Python et SQL
Introduction à sqlAlchemy

Python et le XML

Principes
Parsing XML : les différentes techniques
La librairie elementtree
Python et SAX
Python et DOM (manipulation de l'arbre XML)

Maîtrisez votre environnement de développement

Utiliser le plugin Eclipse pour Python (Pydev)
Rechercher des bugs avec PyChecker
Vérifier le respect des standards avec PyLint
Utiliser le guide de style PEP 8 (Python Enhancement Proposals)
Générer de la documentation
Comprendre l'intérêt et les outils de Tests (Doctests, Unit tests)

Programmation orientée par les tests

Présentation du TDD (Test Driven Developpement)
Doctest
Unittest

Amélioration des performances

Profiling
Multithreading
Caching
Consommation mémoire