Python est un langage de programmation puissant et facile à apprendre. Il dispose de structures de données de haut niveau et permet une approche simple mais efficace de la programmation orientée objet.
- créer et administrer un site Web.
- développer des logiciels et des applications, aussi bien pour ordinateur que pour téléphone.
- automatiser des scripts systèmes et des interactions ordinateur – navigateur Web.
Objectifs de la formation
Le langage Python est particulièrement polyvalent même s’il est particulièrement utilisé dans la Data Science et le Machine Learning grâce à la richesse de ses bibliothèques scientifiques d’analyse de données.
Cette formation Python vous permet de disposer des solides bases en programmation objet, présentées et déclinées dans le contexte de Python.
À l’issue de cette formation, vous aurez acquis les connaissances et compétences nécessaires pour :
- Connaître les fondamentaux de la programmation objet
- Maîtriser la syntaxe du langage Python
- Connaître et mettre en œuvre les modules Python
- Manipuler les données en Python
- Concevoir des interfaces graphiques en Python
- Disposer d’une première expérience dans l’utilisation des outils de test et d’évaluation d’un programme Python
À qui s’adresse cette formation ?
Public :
Ce cours Python s’adresse à tout développeur souhaitant acquérir les bases de la programmation en Python.
Prérequis :
Les participants à cette formation Python doivent connaître un langage de programmation, car la formation ne prévoit pas de revenir sur les bases de la programmation (variables, test, boucle, fonction, …)
Contenu du cours
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…Travaux pratiquesObjectifs : Prendre en main rapidement son environnement de développement
Description : Premier programme simple interactif de saisie et d’affichage de texte afin de prendre en main l’interpréteur Python. Un second programme non interactif permet de voir l’aspect automatisation de Python.Les bases de Python (la syntaxe, les types)
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 functionTravaux pratiquesObjectifs : Mettre en œuvre la syntaxe fondamentale de Python
Description : Saisie de notes dans un tableau numpy, affichage de la moyenne, de la plus petite et de la plus grande note. Chargement des notes depuis un fichier CSV (avec en tête), recherche du meilleur étudiantProgrammer objet en Python
Limites de la programmation « simplement » structurée
Philosophie, concepts, et vocabulaire de la programmation objet
Représentation des données en programmation objet (classes, propriétés)
Représentation des traitements (méthodes)
Contrôler l’accès aux données (encapsulation)
Exemples de classes prédéfinies en Python permettant de profiter pleinement de l’approche objet
Cycle de vie d’un objet (constructeur, destructeur)
Accéder aux attributs et fonctionnalités de l’objet cible (self)
Comment les objets communiquent entre eux ?
Classe mère et classe fille (héritage)
Des fonctions différentes avec … le même nom (polymorphisme)
Héritage simple et héritage multiple
La fonction super()
Protection des traitements (public, protected, private)
Le mécanisme de traitement des exceptions
Exemple de formalisme UML (diagramme de classe)
Tour d’horizon des classes fondamentales existantes en Python
Notion de Design PatternsTravaux pratiquesObjectifs : Savoir programmer objet en Python. Comprendre les liens entre les classes.
Description : Mise en œuvre progressive d’un modèle objet en Python CLASSE, ELEVE, EXAMEN, NOTES regroupant l’ensemble des concepts vus dans ce chapitre et favorisant la réflexion sur les bonnes pratiques (encapsulation, héritage ? composition ?) tout en prenant en main la syntaxe de façon concrète.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)Travaux pratiquesObjectifs : Savoir utiliser les listes en Python
Description : Ajout à la classe ELEVE de propriétés (utilisation des list et set) sous la forme de label inclinés (utilisation de la librairie Matplotlib)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 sequencesTravaux pratiquesObjectifs : Savoir utiliser les itérateurs
Description : Modification de la classe ResultatExamen afin qu’elle implémente un itérateur. Afficher dans un log les données qu’elle contient via l’utilisateur de l’itérateur (librairie logging)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 VirtualenvTravaux pratiquesObjectifs : Maîtriser l’utilisation des modules en Python
Description : Création d’un nouveau module en restructurant le projet précédent afin que les 2 classes Resultat et ResultatExamen soient dans un package note. On écrit ces données dans un fichier texte (librairie csv). On modularise notre projet afin de simplifier sa maintenance et sa livraison en respectant les bonnes pratiquesGestion des données (fichiers, SGBD, XML)
Accéder aux fichiers (objet File)
Conformité des modules Python pour accéder à une base de données (DB-API)
Python et requêtes SQL
Filtrer les données grâce aux expressions régulières
Présentation de la manipulation de flux XMl en Python (ElementTree)
Manipuler des fichiers CSV Travaux pratiquesObjectifs : Savoir dialoguer avec une base de données de type SQL en encapsulant les traitements de lecture/écriture pour respecter les bonnes pratiques d’architecture
Description : Construction d’un accès à une base MySQL ou PostgreSQL (librairies panda, psyco)
Dans un module persistance, on construit une classe ResultatDao, qui permet toutes les actions standards sur la table résultats (insertion, mise à jour, suppression, lecture ciblée ou complète de la table).Création d’interface graphique
Spécificités du développement d’interface graphique (programmation événementielle)
Présentation de la bibliothèque TkInter.
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.
Les applications multifenêtres.
Un petit mot sur la bibliothèque QtTravaux pratiquesObjectifs : Mettre en œuvre une IHM en Python avec TkInter
Description : Développement d’une maquette pour compléter l’atelier précédent sous forme graphique (menu, boîtes de dialogue, liste, boutons, …) afin de proposer une interface pour la saisie des actions de manipulations des données et l’affichage des résultatsQualité et outils
En quoi consiste l’assurance qualité d’un programme Python (QA) ?
Vue d’ensemble de la « trousse à outils » proposée au développeur
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
Disposer de statistiques sur l’exécution de son programme (profiling)
Comprendre l’intérêt des outils de Tests (Doctests, Unit tests)Travaux pratiquesObjectifs : Bien comprendre le champ fonctionnel de chaque outil présenté dans ce chapitre et savoir les utiliser
Description : Audit de code Python ne respectant pas les standards professionnels en terme de lisibilité. Bonnes pratiques dans le Deboguage d’un programme. Mise en œuvre de tests unitaires simples. Génération de documentation. Repérage des parties consommatrices d’un programme Python d’analyse de données (profiling de l’application du TP d’extraction des données de data.gouv.fr).
Objectifs de la formation
Cette formation Développement avancé avec Python vous apprend à maîtriser des fonctionnalités comme la gestion des graphiques, des bases de données, les liens avec les langages C et Java, le développement d’applications Web, et l’utilisation de framework comme Django.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Packager un projet Python
- Mettre en œuvre les manipulations avancées des primitives en Python
- Gérer les bases de données avec Python
- Connaître la notion de concurrence avec Python
Appréhender le développement web avec Python
À qui s’adresse cette formation ?
Public :
Cette formation s’adresse aux développeurs Python.
Prérequis :
Avoir suivi la formation Python ou posséder des connaissances équivalentes.
modeste, seul ou en équipe.
Contenu du cours
1.
Packager un projet Python
Projet vs bibliothèque
Gérer un projet avec pipenv
Créer un wheel distribuable avec setup.cfg
Compiler le code Python en un exécutable avec nuitkaManipulations avancées des primitives en Python
Générer du code à la volée : factories puis métaclasses
Décorateurs à plusieurs niveaux
Context manager et décorateur à la fois
Au delà de yield : la méthode send() des générateurs
Monkey paching et autres injections de code
Introspection du codeGestion des bases de données avec Python
Base de données supportées
SQL à la main avec la DB API
Démonstration d’un ORM : SQLAlchemy ou PeeweeConcurrence en Python
Programmation non blocante avec les threads
Le GIL et les limites des threads
Exploiter plusieurs coeurs avec le multiprocessing
I/O asynchrone avec asyncioProgrammation graphique
Différentes solutions : PyQt, Tkinter, PyGTK, wxWidgets et Kivy
Caractéristiques de chaque solution.
Travaux pratiques avec le module Tkinter.
Création d’objets (fenêtres, boutons, …),
Appel des méthodes associées (grid(), pack(), …)Développement web avec Python
Les frameworks les plus populaires : Django, Pyramid, Flask, Zope …
Le protocole HTTP
Le cycle requête / réponse
Mise en œuvre avec Flask
Objectifs de la formation
Cette formation Analyse de données en Python permet aux participants dans un premier temps de découvrir et apprendre le langage Python puis de comprendre pourquoi Python est particulièrement bien adapté à toutes sortes de problèmes d’analyse de données
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Maîtriser les bases du langage Python
- Connaitre les aspects avancés en Python
- Savoir analyser des données en Python
- Savoir faire une représentation graphique de données en Python
- Acquérir des données externes en Python
- Comprendre les performances et la parallélisation
À qui s’adresse cette formation ?
Public :
Cette formation est destinée à toute personne qui souhaite utiliser Python pour développer des applications de calcul scientifique ou d’analyse de données.
Prérequis :
Pour suivre cette formation Python Analyse de données, il est nécessaire de connaître au moins un langage de programmation.
Contenu du cours
1.
Les bases du langage Python
Les caractéristiques du langage Python
Pourquoi choisir Python pour l’analyse de données ?
Installation et configuration
Philosophie de Python (indentation, objet, etc.)
Les types de données
Appels de fonctions et méthodes
Structures de contrôles (boucle, test, exceptions)
Structures de données et séquences (tuple, liste, primitives, dict)
Les principales bibliothèques de Python (NumPy, Pandas, Matplotlib, Ipython, SciPy)Atelier :Installation et configuration de son environnement de développement
Un premier programme simple permettant de résumer la syntaxe de base des grands concepts dans une approche mnémoniqueAspects avancés en Python
Espace de noms, périmètre et fonctions locales
Manipuler les fonctions comme des objets
Les fonctions anonymes (lambda)
Syntaxe d’appels étendus (*args, **kwargs)Introduction à l’Analyse de Données en Python
La manipulation de données par l’utilisation de la librairie Pandas
Introduction du concept de Dataframe comme structure de données central pour l’analyse de données
Comment interroger ces structures ? Comment ces structures sont indexées ?
Traitement de « données manquantes »
Fusion de dataframes
Manipulation des dates
Application de mesures statistiques variées sur les DataFrames
Bonne compréhension des problèmes d’échelle de mesure, de normalisation
Création de métriques d’analyseAtelier :Cet atelier permettra aux participants d’intégrer des données tabulaires et des séries temporelles, de les « nettoyer », les manipuler et d’y appliquer des analyses statistiques simples
La représentation graphique de données en Python
Introduction aux bases de la visualisation de données
Focalisation sur la génération de graphes grâce à la librairie Matplotlib : démonstration de l’application de graphes Matplotlib à la visualisation de problèmes concretsAtelier :Cet atelier permettra de poursuivre les travaux de l’atelier précédent en générant des visualisations graphique illustrant les analyses de données réaliséesL’acquisition de données externes en Python
Les formats de données structurées : CSV, flux XML et JSON
Lecture et écriture de fichiers
Manipulation des données issues de ces fichiers par des structures Python adaptées
Fonctions d‘accès et de download de données en ligneAtelier :Cet atelier permettra de réaliser un module de capture de données disponibles sur Internet
Application à la capture de séries financières (indices de marché et cours de bourse)Analyses Statistiques en Python
Présentation des principales bibliothèques d’analyse de données Python : NumPy, SciPy, IPython (Jupyter)
Fonctions de manipulation et de calcul matriciel (Numpy)
Fonctions de Statistiques Descriptives (SciPy) : quantiles et des fonctions de répartition pour
différentes lois statistiques
Fonctions de comparaison de populations, mesures d’association, etc (SciPy)
Fonctions de classification automatique (SciPy) : k-meansAtelier :Cet atelier permettra aux participants d’appliquer leurs connaissances à la réalisation d’un « mini atelier » d’Analyse Technique pour la Finance des Marchés :
– Collecte automatique de séries financières
– Calcul d’indicateurs : d’indicateurs simples (moyennes mobiles) à des indicateurs avancés (tel que le RSI et les Bandes de Bollinger)
– Visualisation des résultatsPerformances et parallélisation
Les outils pour lire l’activité (Timeit, cProfile)
Paralléliser vos traitements avec le multiprocessing
Calcul distribué avec la librairie Celery
Les faiblesses du multithreadingAtelier :Mise en œuvre de l’algorithme Map Reduce avec Celery
Objectifs de la formation
Cette formation Python avancé pour le calcul scientifique de trois jours permet aux participants de découvrir les éléments avancés du langage Python dans un contexte de calculs scientifiques.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Calculer, estimer et inférer dans des data-set réels, bruités et de dimension importante
- Augmenter un data-set
- Réaliser des calculs plus précis
- Détecter des motifs approchant dans une bibliothèque de séquences
- Réaliser des prédictions sur des séries temporelles
Dépoter les calculs sur des architectures matérielles optimisées pour les calculs sans modifier le code
À qui s’adresse cette formation ?
Public :
Ce cours Python Calcul Scientifique s’adresse aux ingénieurs de développement et ingénieurs scientifiques.
Prérequis :
Pour suivre cette formation Python Calcul Scientifique, il est nécessaire de de connaître les éléments de base du langage Python (variables, fonctions, et structures de données) ainsi que les principes de fonctionnement des librairies scientifiques Python (Numpy, Scipy et Pandas).
Contenu du cours
1
Partie 1 – Éléments avancés du langage Python
Éléments avancés du langage Python
Éléments de programmation avancée avec les fonctions :
– Les fonctions anonymes
– Fonction dans une fonction
– Les décorateurs
– Comment se servir des décorateurs pour augmenter la vitesse d’exécution du code Python ?
Utilité et exemple d’application
Comment ça fonctionne ?Mise en oeuvre et exercices guidés
Choix d’une partie facultative selon la demande et le rythme d’avancement.
On complète cette première journée avec des éléments avancés de la librairie Pandas ou des points avancés du langage Python.Partie facultative du programme Python
Traitement des dates et des heures en Python
Les ensembles et collections :
– Opérateur ‘splat’
– Appel étendu et nombre infini d’arguments dans un appel de fonctionPartie facultative du programme Pandas
Brefs éléments de rappels de la librairie Pandas
Multi-index avec Pandas
Fusion de DataFrame
Regroupement (groupby, split, apply, combine)Exercices guidés reprenant les notions sur des jeux de données réels
Partie 2 – Mise en oeuvre du langage Python : les librairies scientifiques avancées
Comment aller au-delà des bibliothèques scientifiques de base que sont Matplotlib, Scipy et Numpy ?
Des exercices sur des data-sets permettent d’explorer quelques librairies scientifiques avancées de détection et de prédictions
Pattern Mining
Comment utiliser Python pour détecter des pattern fréquents et des motifs cachés dans des données bruitées de très grandes dimensions ?
– Recherche optimisée de séquences cibles dans une bibliothèque de séquences
– Classification de série temporelles
– Détection d’anomalies et prédictionsExercice guidé : application sur des séries temporelles et des data-set réels et bruités
Comment réaliser des prédictions dynamiques sur des séries temporelles ?
Panorama de librairies spécialisées
Comment appliquer les méthodes de prédictions bayésiennes avec Python ?
Aller plus loin. Pistes afin de réaliser des prédictions sur des données dynamiques (online prediction) ?Exercice guidé autour d’un data-set réel
Partie 3 – Accélérer les calculs avec Python
Panorama de quelques librairies qui permettent de combler l’écart entre Python et les langages compilés type C/C++
Comment accélérer le traitement de ses dataframes Pandas afin d’économiser plusieurs ordres de grandeur de temps de calcul ?
Quelles librairies pour déporter ses calculs sur carte graphique GPU sans modifier son code ?Exercice guidé avec Dask
Partie 4 – Datavisualisation avancée avec Python
Rappel et panorama des bibliothèques de visualisation (Matplotlib, Seaborn)
Comment aller au-delà des bibliothèques standard ?
Bref panorama de quelques bibliothèques avancées :
– graphiques sur des données de flux (streaming)
– graphiques interactifs
– graphiques sur des données massives (Big Data) difficilement représentables avec les outils standards
Comment représenter graphiquement les données de grandes dimensions ?
Méthodes avancées de projection pour les données de grandes dimensionsPartie 5 – Exercice libre sur un exemple choisi afin d’utiliser les notions acquises pendant la formation
Objectifs de la formation
Avec sa réputation d’excellent « langage glue », Python est la technologie idéale pour récupérer des données hétérogènes depuis des sources aux formes variées afin d’accumuler une base de connaissances.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Comprendre les enjeux techniques et ethniques du scraping
- Connaître les différentes méthodes utilisées pour récupérer, traiter et stocker les données
Maîtriser les technologies existantes pour choisir la solution adaptée à votre besoin d’acquisition
À qui s’adresse cette formation ?
Public :
Ce cours Scraping Python cible principalement les programmeurs déjà à l’aise avec Python, ayant déjà des projets de taille moyenne à leur actif, et souhaitant mettre en œuvre leur propre outillage pour étoffer le stock de données dans lequel ils puissent piocher.
Prérequis :
Pour suivre ce cours Scraping Python, il faut être à l’aise avec le langage Python dans sa dernière version.
Contenu du cours
1.
La base du traitement par lot (scraping)
Rappel des fondamentaux
Parcourir le système de fichiers
Gérer proprement l’encoding
Lire et écrire des fichiers
Analyser le JSON, le CSV et l’XML
Les générateursTravaux Pratiques
Crawler une collection de CSV pour en faire un rapport statistique
Parcours de données sur le Web
Mon premier scraper
Rappel sur le protocole HTTP
Requêtes simples avec Request
Stocker les données avec SQLAlchemy
Analyser du HTML avec Beautiful SoupTravaux Pratiques
Crawler les articles de Wikipédia sans passer par l’API, stocker le résultat en base
Questions de performances
Concurrence et parallélisme
Threads et GIL
Utiliser plusieurs cœurs avec le multiprocessing
Programmation I/O asyncrone
Performances et éthiques
Utilisation d’une forme de cache : disque, RAM et redis
Introduire un délai aléatoire
Le fichier robot.txtTravaux Pratiques
Crawler les articles de Wikipédia via l’API et Asyncio
Les API professionnelles
Concurrence et parallélisme
Authentifications et token
Anatomie d’une API REST
Retry propre
Gérer le rate limiting
Gestion des erreurs
Logging de l’application
Exemple avec un client twitter fait à la mainTravaux Pratiques
Crawler les posts de twitter via l’API officielle en utilisant un client déjà existant
Industrialiser le crawling
Scrappy, un framework de scraping automatique
Introduction aux mécanismes de base du framework
Travaux Pratiques
Crawler les articles de Wikipédia en utilisant scrappy
Selenium, un browser headless
Utiliser Selenium à la main
Utiliser Scrappy et Selenium ensembleTravaux Pratiques
Crawler les images et les commentaires d’imgur avec scrappy et selenium
Objectifs de la formation
Cette formation Machine Learning avec Python vous propose de découvrir les concepts et les technologies du Machine Learning à travers le langage Python et sa bibliothèque Scikit-Learn qui propose tous les algorithmes standards. Vous apprendrez à développer de puissants modèles prédictifs dont les résultats vous surprendront par leur puissance et leur facilité de mise en œuvre.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Décrire les concepts du machine learning
- Connaître les principaux algorithmes utilisés en machine learning
- Utiliser la bibliothèque Scikit-Learn
- Mettre en œuvre le regroupement de données automatique (clustering)
Utiliser Azure Machine Learning
À qui s’adresse cette formation ?
Public :
Ce cours Machine Learning avec Python s’adresse à toute personne amenée à utiliser Python pour développer des modèles de prédiction dans n’importe quel domaine : scientifique, médical, bancaire, sécurité, data…
Prérequis :
Cette formation Machine Learning avec Python suppose de savoir développer et de connaître les bases de Python.
Contenu du cours
1.
Fondamentaux du Machine Learning
Les promesses du machine learning
Les technologies sous-jacentes
Liens entre Cloud, Big Data et Machine Learning
Présentation du Deep LearningTravaux pratiques
Parcours de différents résultats de programmes de machine learning afin de valider le vocabulaire et les concepts présentés dans ce chapitre (prévisions de tarifs, classification d’images, reconnaissance de textes, etc.)
Les algorithmes standards
Différences entre apprentissage supervisé et non supervisé
La régression linéaire
La régression logistique
L’arbre de décision
Les machines à vecteur de support (SVM)
La classification selon Naive Bayes
Les plus proches voisins
Pourquoi faut-il parfois réduire les dimensions ?
Les réseaux de neuronesLa bibliothèque Python (Scikit-Learn)
Comment utiliser la documentation ?
Intégration de Scikit-Learn avec d’autres librairies (Pandas, Numpy, SciPy, Matplotlib, etc.)
Représentation des données par des tableaux (Numpy, Scipy, Pandas, Python)
Représentation d’une prédiction par une classe (prédicteur, classifieur, estimator)
Comment choisir le bon algorithme d’apprentissage automatique ?Travaux pratiques
Reconnaissance et classification d’images de fleurs selon des critères observables (chargement d’une base, découverte du contenu, observation des données, visualisation avec Seaborn, apprentissage, prédiction)
Apprentissage non supervisé (clustering) en Python
Explorer les données et les regrouper (clustering)
Visualisation avec clustering hiérarchique et t-SNE
Décorrélation des données et réduction des dimensions
Découvrir des fonctionnalités interprétables
Extraire des connaissances des textes (Text Mining)Travaux pratiques
Extraction de sujets et de tendances à partir de gros volume de flux de données (exemple Twitter)
Analyse de sentiments et démotions
Classification automatique de textes dans une ou plusieurs catégories (Word2Vec, Doc2Vec, TF-DF)
Retour sur l’atelier de la reconnaissance supervisée des fleurs pour le passer en mode non supervisé : réduction des dimensions, regroupement des données selon différents algorithmes (clustering) jusqu’à la mise en évidence de l’identification des groupes de familles de fleursAzure Machine Learning
Construire des modèles sans coder avec les outils du Cloud
Les services proposés par Visual Studio, Azure et GitHub
Valider les performances des modèles
Déployer son modèle
La préparation des donnéesTravaux pratiques
Construction d’un modèle de prédiction sous Visual Studio
Objectifs de la formation
Cette formation Python Bonnes pratiques et Design patterns vous apprend les bonnes pratiques de programmation avec Python.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Appliquer des design patterns et des bonnes pratiques pour développer des applications avec Python
- Exploiter des fonctionnalités avancées de programmation Python pour concevoir des programmes fiables
- Créer et gérer des threads de contrôle concurrents
- Générer des requêtes et des réponses aux services Web REST et utiliser les données renvoyées
- Suivre l’exécution du programme et améliorer les performances
- Lancer des tests unitaires sur les programmes et les modules Python, les installer et les distribuer.
À qui s’adresse cette formation ?
Public :
Cette formation est destinée aux programmeurs, développeurs, ingénieurs en logiciels, testeurs et responsables techniques souhaitant approfondir leurs connaissances du langage Python.
Prérequis :
Afin de suivre ce stage, il est nécessaire d’avoir suivi la formation Python ou de posséder les connaissances équivalentes telles qu’une expérience professionnelle d’au moins 3 mois de programmation avec Python.
Contenu du cours
1.
Programmation orientée objet avec Python
Étendre les classes pour définir des sous-classes
Hériter des plusieurs super-classes et classes mixin
Ajouter des propriétés à une classe
Définir des classes abstraites de baseFonctionnalités Python
Écriture de code Python
Personnaliser les itérations et les indexations avec des méthodes « magiques »
Modifier le code de façon dynamique avec le « monkey patching »Traitement des exceptions
Lever des exceptions personnalisées
Réduire la complexité du code avec les gestionnaires de contexte et l’instruction withVérification du code et tests unitaires
Tests : Les bonnes pratiques
Développer et lancer des tests unitaires Python
Simplifier les tests automatiques avec le paquetage NoseVérification du comportement du code
Investiguer les dépendances entre objets avec le paquetage Mock
Mettre en œuvre les assertions avec le paquetage MagicMockRecherche des erreurs et techniques de débogage
Identification des erreurs
Journaliser les messages pour les audits et le débogage
Vérifier le code à la recherche de bogues avec PyLintDébogage du code Python
Extraire les informations sur les erreurs à partir des exceptions
Suivre l’exécution du programme avec l’environnement de développement intégré PyCharmDesign patterns Python
Patrons structurels
Mettre en œuvre les patrons décorateurs avec @
Contrôler les accès à un objet avec le patron ProxyPatrons comportementaux
Utiliser le patron d’itération avec les générateurs Python
Définir un algorithme squelette avec le patron de méthode
Autoriser des couplages lâche entre classes avec le patron observateurInterface avec les clients et les services Web REST
Services Web REST Python
Développer un service REST
Générer des réponses JSON pour des clients AjaxClients REST Python
Envoyer des requêtes REST depuis un client Python
Utiliser les données JSON et XML renvoyéesMesure et amélioration de la performance de l’application
Mesurer l’exécution de l’application
Chronométrer l’exécution des fonctions avec le module « timeit »
Suivre l’exécution du programme via « cProfile »
Manipuler le suivi de l’exécution de manière interactive avec « pstats »Les fonctionnalités du langage Python pour l’optimisation des performances
Déterminer les structures de données efficaces parmi listes, dictionnaires et tuples
Transformer et filtrer des ensembles de données avec les compréhensions
Remplacer l’interpréteur traditionnel Python par PyPyInstallation et distribution de modules
Gestion des versions des modules
Installer les modules depuis le dépôt PyPi avec pip
Portabilité du code entre les différentes versions de PythonPaquetage des modules et des applications Python
Définir des environnements Python isolés avec « virtualenv »
Préparer la distribution d’un paquetage avec « setuptools »
Importer les modules Python dans un dépôt localExécution en parallèle
Processus légers (threads)
Créer et gérer plusieurs threads de contrôle avec la classe Thread
Synchroniser des threads avec des verrousTraitements lourds
Exécuter des commandes du système d’exploitation comme sous-processus
Synchroniser des processus avec les files d’attente
Exécuter des traitements en parallèle avec les groupes de processus et des exécuteurs
Objectifs de la formation
Cette formation PyQt s’attache à la dimension GUI de Qt.
Elle vous permettra de savoir développer des interfaces graphiques pour les utilisateurs en Python, et ce de qualité professionnelle tant en termes de rendu que d’architecture.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Aborder l’ensemble des nombreux domaines fonctionnels abordés par le framework PyQt
- Architecturer son code selon le standard MVC
- Utiliser les Widgets proposés par Qt dans ses programmes Python
- Créer ses propres widgets
- Maîtriser la disposition et la cinématique des fenêtres
- Programmer les événements
- Gérer les styles
- Développer des tâches en parallèles (multihtreading)
- Utiliser les possibilités multimédia (son, vidéo, 3D, …)
À qui s’adresse cette formation ?
Public :
Ce cours PyQt cible principalement les développeurs Python, même relativement débutants. Des développeurs C++ connaissant un peu Qt mais débutant en Python peuvent aussi être intéressés par cette formation.
Prérequis :
Pour suivre cette formation PyQt dans de bonnes conditions, une certaine connaissance de Python est souhaitable. Il est a minima nécessaire d’avoir des connaissances dans un langage de programmation orienté objet.
Contenu du cours
1.
Contexte d’usage de Qt et de PyQt
Qu’est-ce que Qt ?
Usage de Qt avec le langage Python (ou l’invention de PyQt)
L’écosystème technique autour de PyQt
Utilisation commerciale et industrielle de PyQt : quelques exemplesWidgets en PyQt
Un premier “Hello World”
La notion de fenêtre et les objets associés en PyQt
Notions de widget et de disposition (layout) en PyQt
Inventaire des widgets principauxDisposition de fenêtres en PyQt
Les différents procédés de disposition en PyQt
QHBoxLayout et QVBoxLayout
QGridLayout et QFormLayout
Les autres contrôles de dispositionGestion des évènements en PyQt
Les évènements en PyQt
Focus sur pyqtSignal
Les mots-clés partial et lambdaLa gestion des styles en PyQt
Les polices avec QFont
Les images avec QPixmap
Icônes et ressources
QPalette et QBrush
Le QSS dans tous ses étatsArchitecture avancée avec PyQt
Adopter une architecture MVC
Interagir avec une base de données
Mapping de données en PyQtMultimédia en PyQt
Les animations avec PyQt
Détour par un autre framework : Pygame
Gestion du son en PyQt
Gestion de la vidéo en PyQtLe multithreading
Les problèmes de freeze de l’interface
QTimer
QThread et QThreadPoolPlus loin avec le framework
Les couches basses et le réseau
Diagramme de données en PyQt
De la 3D !
Un mot sur la micro-électronique
Objectifs de la formation
Cette formation Python pour le Pentest traite des différents modules et cas d’utilisations de Python dans le cadre de tests d’intrusion.
Vous analyserez différentes problématiques rencontrées lors d’audits et les solutions que le scripting Python permet de mettre en place afin d’automatiser les tâches complexes et spécifiques.
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Faciliter le développement d’exploits en Python
- Interfacer différents langages avec Python
- Automatiser le traitement de tâches et automatiser les exploitations
- Contourner les solutions de sécurité
À qui s’adresse cette formation ?
Public :
Ce cours est destiné aux RSSI, aux consultants en sécurité, aux ingénieurs et techniciens et aux administrateurs systèmes et réseaux.
Prérequis :
Pour participer à cette formation Python pour le Pentest, vous devez avoir une connaissance basique du langage Python.
Contenu du cours
1.
Python pour le HTTP, requests
Développement d’un système de recherche exhaustive
Contournement de captchaDéveloppement d’un modèle Python BurpSuite
Introduction à BurpSuite
Développement d’un module de détection passif de Web Application FirewallsExploitation d’une injection SQL en aveugle
Extraction bit à bit et analyse comportementale
Introduction aux tâches distribuées
Introduction à l’attaque Slowloris
Développement d’un exploit Slowloris distribuéPython et l’altération HTTP
Introduction à MITMProxy
Développement d’un module “SSL Striping”Python et le forensics
Volatility
Hachoir
Network Forensics avec ScapyLe C et Python, Cython
ctypes
Développement d’un module Cython Antivirus et BackdoorsAntivirus et Backdoors
Shellcodes
Création d’une porte dérobée avancéeChaîne d’exploitation
Exploitation de multiples vulnérabilités
Création d’un exploit complet (POC)Travaux Pratiques : atelier final
Capture the Flag
Objectifs de la formation
Flask est un framework open-source de développement web en Python. Écrit après Django, l’autre grand framework Python, il a intégré le retour d’expérience de la communauté Python. Souvent plus explicite, il est plus simple d’accès pour un(e) débutant(e). Vous pouvez ainsi développer un site web ou une application web en gardant la souplesse du langage de programmation Python.
À qui s’adresse cette formation ?
Public :
Cette formation Flask s’adresse aux développeurs Python qui souhaitent créer et maintenir leurs premières applications à base de Web services.
Prérequis :
Pour suivre ce cours Flask, il est nécessaire de maîtriser le langage de programmation Python.
Contenu du cours
1.
Introduction à Flask
Pourquoi les frameworks web sont nécessaires
Vue d’ensemble des frameworks Web Python disponibles
Installation de Flask
Routage des demandes pour afficher les fonctionsTravaux Pratiques :
Validation de la plateforme avec exposition d’un service REST élémentaire
Construire une API REST avec Flask
Servir des fichiers statiques
Rendu de modèles avec Jinja2
Produire du JSON, ou XML
Émission de redirections
Contexte d’application et contexte de demande
Traitement des téléchargements de fichiers avec Flask-UploadsTravaux Pratiques :
Application pour la construction de services REST pour l’exposition d’un contrat de gestion de données (contacts d’un agenda)
Sécuriser une API REST
Pourquoi ajouter de la sécurité à des échanges HTTP
Plusieurs modes de sécurisation
Gestion de session utilisateur avec Flask-Login et Flask-User
L’interface d’administration créée par Flask-Admin
Envoi d’email avec Flask-MailTravaux Pratiques :
Contrôle pour limiter les accès d’un service Web à un ensemble d’usagers
Automatiser les phases d’un projet Web Python
Étape de conception Swagger
Étape de construction avec Conda
Étape de déploiement d’applications Flask en productionTravaux Pratiques :
Gestion de projet depuis la conception jusqu’au déploiement derrière un serveur HTTP
Objectifs de la formation
Cette formation Django vous permettra d’acquérir les connaissances nécessaires pour créer des applications Web avec le framework Django. Trois jours pour acquérir les bases du framework Django et disposer d’une bonne vue d’ensemble des différents modules à disposition et des possibilités
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Utiliser l’ORM, les vues et les templates
- Réaliser rapidement des projets web puissants
- Intégrer des modules externes
Gérer le déploiement et la maintenance de votre projet
À qui s’adresse cette formation ?
- Public :
- Cette formation Django s’adresse à tout développeur souhaitant acquérir les bases du framework Django.
- Prérequis :
Pour suivre cette formation Django dans de bonnes conditions, il est important de connaitre les bases du langage Python
Contenu du cours
1.
Introduction à Django
Rappels sur le protocole HTTP
Comprendre la structure d’un projet Django
Revue générale du fichier settings.py
Le routing, via urls.py
Les vues, et les objets de requête / réponse
Template, liens, tags et filtresL’ORM Django
Bases de données prises en charge
Créer des modèles, types de champs
Accès aux données avec les querysets
Champs relationnels et Managers
Agrégation et annotations de requêtes
Modèles de bases : utilisateur et groupes
Comment fonctionne les Class Based ViewsL’interface d’administration de Django
Installer l’interface d’administration
Comptes utilisateurs et droits
Publier des modèles dans l’interfaceWorkflow de l’utilisateur
GET, POST et COOKIES
Authentification et session
Les middlewares
Les formulairesGestion des formulaires
Créer un formulaire
Les types de champs
Validation des données
Créer des champs personnalisés
Personnaliser l’apparence
Utiliser AJAX pour la soumission
Upload de fichiers
Protections CSRFInternationalisation
Internationaliser une application
Gestion des fichiers de langues
Traductions javascript
Détection du langage utilisateurDéploiement et maintenance
Intégration dans Apache ou Nginx : le protocole WSGI
Gestion des fichiers statiques
Django-debug-toolbar
Objectifs de la formation
Cette formation ZOPE création d’une application vous permet de connaître le serveur d’applications, le component Architecture, le Framework MVC (Grok) et l’intégration WSGI (Web Server Gateway Interface).
À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Connaître le serveur d’applications
- Connaître le component Architecture
- Connaître le Framework MVC (Grok)
Connaître l’intégration WSGI (Web Server Gateway Interface
À qui s’adresse cette formation ?
Public :
Cette formation Zope concerne les Gestionnaires d’applications, administrateurs système, webmestres, développeurs de sites, programmeurs.
Prérequis :
Cette formation zope nécessite des donnaissances sur les technologies du Web (XML, XHTML) et de Python et/ou une expérience d’intégrateur sur Plone. Idéalement avoir suivi la formation Python.
Contenu du cours
1.
Introduction à Zope
Etat actuel des technologies
Les frameworks de Zope : Zope 2, Zope 3 (Component Architecture), Repoze, Grok
Les plates-formes populaires construites avec Zope
Les conventions des développeursMettre en place un environnement de développement Zope
Python
Zope
Connaître les nouvelles librairies de développement (Zope 3) : Zope interface, Zope schéma, etc…
Aspects de déploiementArchitecture de composants de Zope, les concepts
Notion d’interface – Notion de composant
Adaptation d’interface, Adaptateurs et Browser Views (Multi-Adaptateurs)
Configuration avec le ZCML (Zope Configuration Markup Language)Les outils de développement de Zope
Présentation avec les Page Templates
Templates et Browser Views (logique de présentation)
Composants de contenus persistants (via la base de données objet de Zope : ZODB)
Formulaires d’interaction avec la librairie zope.formlib (AddForm, EditForm, DisplayForm)
Indexation et rechercheZope : pratiques de développement recommandées
Tests unitaires avec doctest
Tests fonctionnelsIntroduction à Grok
De Zope 3 à Grok – Principes et intérêts de l’approche Grok
Installation des librairies complémentaires pour GrokTutoriel de mise en oeuvre d’une application avec Grok
Modèle de données (Model-View-Controler)
Formulaires auto-générés
Présentation : Classes de Browser View & TemplatesPour aller plus loin avec Zope
L’API de Grok
Les interfaces R.E.S.T