Formation Python CPF

Au cours de cette formation, vous guide pour vous présenter les différents aspects de Python orienté objet, depuis les fondamentaux jusqu'aux concepts avancés. Découvrez l'historique et les différentes versions de Python, ainsi que les caractéristiques uniques de ce langage performant. Durant cette formation, explorez également la bibliothèque standard de Python, les modules d'extension et la gestion des dépendances avec pip.

Grâce à une approche pratique et orientée projet, vous développez une compréhension approfondie des types de données non-modifiables et modifiables, des structures conditionnelles et répétitives, des fonctions, des modules et des paquets. Vous apprenez comment exploiter la puissance de la programmation orientée objet en Python, en maîtrisant la création de classes, les instances, les attributs, les méthodes, l'héritage et la polymorphisme.
La formation aborde également des sujets tels que la manipulation de fichiers, la gestion des exceptions et l'utilisation des modules de la bibliothèque standard pour interagir avec le système d'exploitation et les différentes fonctionnalités du langage.

À la fin de cette formation, vous êtes en mesure de travailler de manière autonome avec Python orienté objet et d'appliquer vos connaissances pour résoudre des problèmes complexes. Vous êtes prêt à réussir les épreuves de votre certification API Society et a obtenir votre diplôme officiel.

Objectifs pédagogiques

  • Comprendre les caractéristiques du langage Python, son historique et les différentes versions.
  • Maîtriser les types de données non-modifiables tels que les booléens, les nombres et les chaînes de caractères, ainsi que leurs méthodes et opérations associées.
  • Manipuler des structures de données modifiables telles que les listes, les dictionnaires et les ensembles, en utilisant leurs méthodes et opérations spécifiques.
  • Appliquer les structures conditionnelles et répétitives (if, elif, else, while, for) pour la logique de contrôle du programme.
  • Comprendre les concepts de fonctions, de modules et de paquets, et les utiliser dans le développement Python.
  • Maîtriser la programmation orientée objet en Python, en comprenant les concepts fondamentaux tels que les classes, les objets, les attributs et les méthodes.
  • Manipuler des fichiers en utilisant les fonctions et les méthodes appropriées.
  • Gérer les exceptions en utilisant les instructions try, except, else et finally.
  • Utiliser les modules de la bibliothèque standard de Python pour interagir avec le système d'exploitation, le système de fichiers et les expressions rationnelles.
  • Comprendre les principes de base des tests unitaires en utilisant l'instruction assert et le module unittes

Formation Python CPF en détail

Programme

Introduction

  • Historique (auteur, date de la première version)
  • Versions de Python (branches 2 à 3)
  • Caractéristiques du langage (multi-paradigme, typage dynamique fort, syntaxe claire)
  • Panorama de la bibliothèque standard
  • Modules d'extension et commande pip
  • Principe de fonctionnement de l'interpréteur (bytecode PYC)
  • Interpréteur officiel CPython et autres interpréteurs (micropython, brython, pypy, numba)
  • Ressources (site internet python.org, accès aux documentations)
  • Fonction help() et chaînes documentaires
  • Principe de l'indentation pour délimiter les blocs d'instruction
  • Commentaire
  • Mots-clés réservés
  • Conventions de nommage
  • Interpréteur interactif
  • Programme autonome
  • Fonctions intégrées élémentaires : print(), type(), input(), len()

Types de données non-modifiables

  • Utilité des types non-modifiables (optimisation mémoire), fonctions id() et hash(), opérateur is
  • Principe des séquences ordonnées (str, tuple et list) et collections (dict, set)
  • Booléen (bool), objets True et False
  • Nombre (int, float, complex), constructeurs, opérateurs >>, <<,, &, // et **
  • Notations binaire, octale et hexadécimale, fonctions hex(), oct(), bin()
  • Chaîne de caractères unicode (str), définition avec simple et double guillemets, chaines multilignes avec triple simple ou double guillemets, constructeur
  • Indiçage positif et négatif, tranche de valeurs (slice), opérateurs + et *
  • Méthodes incontournables de str : split(), replace(), lower(), upper(), strip(), join()
  • Chaîne de caractères formatées (%s, %d, %f …) et méthode format()
  • Tableau d'octets (bytes), constructeur
  • Tuple (tuple), constructeur, opérateurs + et *, méthodes count() et index()
  • L'objet None et la fonction repr()

Types de données modifiables

  • Listes (list), constructeur, opérateurs + et *, méthodes apprend(), insert(), sort(), reverse(), remove(), extend(), pop(), clear(), get()
  • Manipulation de pointeurs
  • Copie superficielle via la méthode copy() ou l'indiçage [:]
  • Copie en profondeur avec la fonction deepcopy() du module copy
  • Différences entre les opérateurs == et is, opérateur + et *
  • Fonctions del(), sorted(), reversed(), range()
  • Principe de fonctionnement des objets itérables
  • Dictionnaires (dict), constructeur, méthodes keys(), values(), items(), sort(), update(), get()
  • Set (set), constructeur, opérateurs - | & et ^

Structures conditionnelles et répétitives

  • Structure conditionnelle if … elif … else
  • Opérateur ternaire
  • Structure répétitive while
  • Structure répétitive for
  • Instructions break et continue
  • Fonction enumerate()
  • Bloc else sur structure répétitive
  • Liste en intension (comprehension list)

Fonctions, modules et paquets

  • Définition et appel d'une fonction
  • Espace de noms local, global, pré-défini (__builtins__) et fonction dir()
  • Retourner des valeurs, instruction return
  • Fonctions génériques (duck typing)
  • Valeurs par défaut
  • Passage par étiquette
  • Nombre d'arguments arbitraire (*args, **kwargs)
  • Fonctions anonymes (lambda)
  • Fonctions eval(), exec(), map() et filter()
  • Importation de modules
  • Création d'un module
  • Bloc if __name__ == ''__main__''
  • Importation de paquet
  • Création d'un paquet (__init__.py)
  • Instruction yield

Programmation Orientée Objet

  • Concepts fondamentaux de la POO (séparation du code, encapsulation, héritage)
  • Notions de classe d'objet, d'objet (instance), d'attribut et de méthode
  • Définition d'une classe d'objet
  • Instanciation d'objets, fonctions isinstance()
  • Constructeur (__init__)
  • Attributs et méthodes
  • Mot-clé self
  • Surcharge d'affichage (__str__)
  • Surcharge d'opérateurs (__eq__, __add__, …)
  • Propriété (fonction spéciale property), accesseur et mutateur
  • Espaces de noms global, de l'objet, de la classe
  • Variable de classe
  • Constructeur à nombre d'arguments arbitraire (*args, **kwargs)
  • Héritage de classe (généralisation), fonctions issubclass(), super() et méthode mro()

Manipulation des fichiers

  • Fonction open() et méthode close()
  • Méthodes readline() et readlines()
  • Objet itérable
  • Instruction with avec les fichiers
  • Méthodes read() et write()
  • Méthodes tell() et seek()
  • Méthode writelines()
  • Modules complémentaires : struct, csv, json, xml

Exception

  • Principe de fonctionnement
  • Exceptions pré-définies et arbre d'héritage
  • Instructions try … except … else … finally
  • Propagation des exceptions
  • Déclenchement d'exceptions
  • Définition d'une exception

Modules de la bibliothèque standard

  • Interaction avec l'interpréteur : module sys
  • Interaction avec le système d'exploitation : module os
  • Interaction avec le système de fichiers : module os.path
  • Expressions rationnelles : module re
  • Tests unitaires : instruction assert, module unittest
  • Tour d'horizon d'autres modules intéressants de la bibliothèque standard : datetime, math, timeit, urllib, collections, csv, json, unittest, sqlite3

Public et pré-requis

Public

  • Développeurs
  • Ingénieurs et chercheurs

Pré-requis

  • Connaissances de base en algorithmie

Personne en situation de handicap

Pour toutes questions relatives à l’accueil d’un participant présentant un handicap, merci de nous contacter préalablement avant toute inscription

Ingénierie pédagogique

Moyens pédagogiques et techniques

  • Les supports de cours (slides) seront disponibles en ligne et distribués en début de formation (à l'aide d'un lien vers notre outil interne ou d'une version numérisée), puis fournis au format électronique à la fin de la formation
  • Une salle de formation équipée d'une connexion Internet, d'un vidéoprojecteur, paperboard. Ou une salle virtuelle pour les formations à distance (FOAD).
  • Un ordinateur par stagiaire avec un système d'exploitation installé et les outils nécessaires.

Modalités de suivi de l'exécution du programme

  • Durant la formation: alternance d'apports théoriques (30% du cours), d’exercices pratiques et de mise en situation sous forme de travaux pratiques corrigés avec l’expert-formateur
  • En fin de formation: évaluation à chaud sur l'atteinte des objectifs pédagogiques sous forme de tour de table et de test de connaissances, d'exercices, de QCM

Moyens d'encadrement

Formation assurée par un expert-formateur Python ayant une expérience significative avec un framework Python

Témoignage

Nos experts

Image de profil

Paul Florence

Django-Python-Rust


Toulouse
Céliat Prat

Célia Prat

Python-Django-SSI


Toulouse