--- title: Plan de formation Python Initiation author: Steve Kossouho --- # Programme de Python Initiation La formation s'adresse à des quasi débutants en programmation, ou curieux d'en savoir un peu plus sur les bases de Python. Pour les plus avancés, le rythme change (*uniquement si le groupe est suffisamment homogène*). ## Démarrage - Tour de table et présentation - Logistique, planning et administratif - Rappel du programme ## Découvrir Python - Nature de Python et court historique - Versions de Python et différences - Découvrir la ligne de commande et le shell - Environnements de développement intégrés - Créer un nouveau projet avec PyCharm *lundi 10h30 si pas de pb d'install* ## Découvrir le langage - Syntaxe de base - Types de base : chaînes, nombres - Variables et expressions - Contrôler ce que l'on exécute : conditions et boucles - Découvrir les listes (et tuples, sets) + slicing - Découvrir les dictionnaires - Compréhensions (listes etc.) - Opérations sur les chaînes : méthodes et formatage *mardi 14h30 max* ## Le droit aux erreurs - Découvrir le concept d'exceptions *mardi 15h45* ## Découvrir les fonctions - Découvrir l'utilité des fonctions - Découvrir la syntaxe - Référence vs appel de fonction - Valeurs de retour d'une fonction - Passer des arguments aux fonctions *mercredi 10h00* ## Découvrir la structure du code au-delà du simple script - Expliquer ce qu'est pip, venv (*avec exemples*) et aussi conda - Modules et packages - Bibliothèque standard python et imports - Exemple : faire un peu de calcul avec la bibliothèque standard - Réutiliser votre propre code - Extra : virtualenv et pip) *mercredi 12h00* ## Types supplémentaires - Découvrir les types heure+date et intervalle de temps - Convertir depuis du texte ou vers du texte *mercredi 14h30* ## Découvrir la programmation orientée objet - Intérêts de la programmation objet - Découvrir la syntaxe - Concepts d'attributs et de méthodes - Différence entre une classe et ses objets - Instancier avec une autre signature - Découvrir l'héritage et le polymorphisme - Bonus : Courte introduction aux décorateurs avec @staticmethod - Bonus : Introspection (*getattr, setattr, dir, isinstance, type*) - Bonus : Diagramme de classes UML *mercredi 17h00* # Programme de Python Approfondissement Même public que l'initiation : peu d'expérience en programmation ou curiosité quant à Python. Nécessite toutefois de connaître les bases du langage. **Objectif** : aller un peu plus loin dans les bases de Python pour pouvoir traiter quelques données. ## Découvrir comment manipuler des fichiers texte - Écrire et lire des fichiers (*open/close*) - Écrire et lire des fichiers (*gestionnaire de contexte*) - Formats : JSON - Formats : CSV - Extra : Parcours de fichiers (pathlib) *jeudi 14h30* ## Toucher du doigt les bases de données SQL avec DBAPI et SQLite3 - Exemple simple pour dialoguer avec une base SQL - Ajouter et requêter des données simplement - Bonus : ORMs (peewee) *jeudi 17h00* ## Documenter du code Python - Comment on fait ? - Qu'est-ce qu'on documente ? - Comment on génère des fichiers HTML de documentation ? (*pdoc3, sphinx*) - Bonus : Donner des indications sur le type des variables et arguments *vendredi 10h45* ## Faire sa première interface graphique avec Python - Exemples d'outils pour les interfaces graphiques - PySide6 avec Python (*sous Linux*) - Écrire une fenêtre simple - Interagir avec les contrôles (boutons, champs) - Concevoir graphiquement une fenêtre et l'utiliser avec Python *vendredi 15h45* ## Bonus : Aborder la journalisation - Qu'est-ce que c'est ? Et pourquoi, pour qui, quand ? - Exemple simple de journalisation - Exemple configuré de journalisation dans un fichier *vendredi 16h30* (selon possibilités) ## Certifications Au plus tard le vendredi à 15h30. Dure jusqu'à 17h30. ## That's all folks! ![That's all folks!](assets/images/x-outro-end.png)