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.
- L'utilisation des fichiers.
- La structure conditionnelle if/elif/else.
- Les opérateurs logiques et les opérateurs de comparaison.
- Les boucles d'itérations while et for. Interruption d'itérations break/continue.
- La fonction range.
- L'écriture et la documentation de fonctions.
- Les lambda expression.
- Les générateurs.
- La structuration du code en modules.
Travaux pratiques
Installation et prise en main de l'interpréteur Python.
Approche Orientée Objet
- Les principes du paradigme Objet.
- La définition d'un objet (état, comportement, identité).
- La notion de classe, d'attributs et de méthodes.
- L'encapsulation des données.
- La communication entre les objets.
- L'héritage, transmission des caractéristiques d'une classe.
- La notion de polymorphisme.
- Association entre classes.
- Les interfaces.
- Les diagrammes de classes, de séquences, d'activités...
- Notion de modèle de conception (Design Pattern).
Travaux pratiques
Mise en œuvre d'ensemble de classes associées entre elles.
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.
- Les notions de visibilités.
- Les méthodes spéciales.
- L'introspection.
- L'implémentation des interfaces.
- Les bonnes pratiques et les modèles de conception courants.
- 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.
Utilisation StdLib
- Les arguments passés sur la ligne de commande.
- L'utilisation du moteur d'expressions régulières Python avec le module "re", les caractères spéciaux, les cardinalités.
- La manipulation du système de fichiers.
- Présentation de quelques modules importants de la bibliothèque standard : module "sys", "os", "os.path".
- Empaquetage et installation d'une bibliothèque Python.
- Les accès aux bases de données relationnelles, le fonctionnement de la DB API.
Travaux pratiques
Mise en œuvre de modules Python : expressions régulières, accès à une base de données,
Outils QA
- Les outils d'analyse statique de code (Pylint, Pychecker).
- L'analyse des comptes rendus d'analyse (types de messages, avertissements, erreurs).
- Extraction automatique de documentation.
- Le débogueur de Python (exécution pas à pas et analyse post-mortem).
- Le développement piloté par les tests.
- Les modules de tests unitaires Python (Unittest...).
- L'automatisation des tests, l'agrégation de tests.
- Les tests de couverture de code, profiling.
Travaux pratiques
Utilisation de deux outils d'analyse statiques de code pour la vérification d'un code Python.
Création IHM
- Les principes de programmation des interfaces graphiques.
- Présentation de différentes bibliothèques graphiques : TKinter, Qt6, GTK+, wxWidgets.
- Les principaux conteneurs.
- Présentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text...).
- Le gestionnaire de fenêtres.
- Le placement des composants, les différents layouts.
- La gestion des événements, l'objet event.
- Utilisation du Modèle-Vue-Contrôleur dans une IHM.
Travaux pratiques
Conception d'une interface graphique avec la bibliothèque Tkinter.
Interfaçage Python/C
- Présentation du module Ctypes.
- Le chargement d'une librairie C.
- Appel d'une fonction.
- Présentation de Cython.
- Compiler un script Python en C : création d'extension compilée.
- Utilisation des annotations pour améliorer les performances de compilation.
- L'utilisation du profileur de code.
Travaux pratiques
Appel de fonctions écrites en C depuis Python. Compilation d'une extension pour Python.
Conclusion
- Analyse critique de Python.
- L'évolution du langage.
- Eléments de webographie et de bibliographie.