Cursus
Formation PYTHON Perfectionnement
Objectifs
Comprendre et implémenter des threads en Python pour gérer les accès concurrents.
Optimiser les performances en utilisant des pools de threads.
Concevoir des fenêtres graphiques et gérer les styles, barres de contrôle et menus.
Utiliser les classes QHBoxLayout, QVBoxLayout, QGridLayout et QFormLayout pour organiser les interfaces.
Utiliser PySide2 pour gérer les événements et définir des signaux personnalisés.
Utiliser Qt Designer pour générer et intégrer du code Python.
Créer des graphiques 2D et 3D, et intégrer Matplotlib dans des applications Qt.
Manipuler des tableaux et matrices, et effectuer des opérations d’algèbre linéaire avec NumPy.
Utiliserer SciPy pour le calcul scientifique.
Importer, indexer, sélectionner et manipuler des données avec Pandas.
Pré-requis
Participants
Programme de formation
PROGRAMMATION MULTITHREAD EN PYTHON
Pourquoi faire de la programmation multithread ?
Présentation du module threading
Coder une classe de thread en Python
La gestion des accès concurrents en Python
Utilisation de pool de threads
MISE EN ŒUVRE D'INTERFACES GRAPHIQUES EN PYTHON
Les principales API de mise en œuvre d'IHM en Python
- Présentation de Tkinter (Tk Interface)
- Présentation de PySide 6 (Binding Qt)
- Points forts et points faibles de ces solutions
Création d'une première fenêtre graphique avec PySide 6
- La gestion des styles via Qt
Gestion des barres de contrôle
- Mise en œuvre d'une barre de menus
- Mise en œuvre de barres d'outils
- Mise en œuvre d'une barre de statuts
- Gestion des menus contextuels
Gestion des layouts Qt
- Introduction au concept de layout
- Utilisation des classes QHBoxLayout et QVBoxLayout
- Utilisation de la classe QGridLayout
- Utilisation de la calsse QFormLayout
Traitement des évènements
- Les évènements Qt
- Présentation du paradigme Slots/Signaux
- Les décorateurs PySide2 pour la gestion des slots (@Slot)
- Définir vos propres signaux
Quelques widgets complémentaires
- Les widgets simples
- Les conteneurs
- Les boites de dialogue
Architecture MVC en Qt
- Introduction à l'architecture MVC
- Mise en œuvre de tables de données
- Mise en œuvre d'arborescence de données
- Mise en œuvre de listes de données
Utilisation du Qt Designer
- Présentation du designer
- Prise en main de l'outil
- Notion de promotion de Widget
- Génération du code en Python
- Le compilateur pyside-uic
- Intégration des codes générés dans votre application
CALCUL SCIENTIFIQUE EN PYTHON
Introduction à la SciPy Stack
Utilisation de MatPlotLib
- Un outil de visualisation de données mathématiques
- Produire un graphique en 2D
- Produire un graphique en 3D
- Afficher plusieurs figures simultanément
- Sauvegarder un graphique MatPlotLib
- Intégration MatPlotLib / Application Qt
NumPy et les calculs algébriques et matriciels
- Les tableaux et les matrices
- Le shape des matrices et le reshape
- NumPy et les fichiers
- Indexing, subsetting et slicing
- Opérations proposées sur vecteurs et matrices
- Les fonctions trigonométriques
- Algèbre linéaire avec NumPy
- Les nombres complexes et l'algèbre complexe
- Visualisation des résultats avec MatPlotLib
SciPy et le calcul scientifique
- L'écart-type et la variance
- La régression linéaire
- Intégration
- Opérations d'algèbre linéaire avec SciPy
- Interpolation avec le module scipy.interpolate
- Ajustement de courbe avec le module scipy.optimize
- Transformées de Fourier avec le module scipy.fft
- Traitement d'images avec SciPy
Utilisation de Pandas
- Introduction
- Les différentes sources de données supportées par Pandas
- Series et DataFrame
- Indexation et sélection des données
- Manipulation des données