L’environnement

Python est un langage clair, intuitif, massivement répandu, et devenu incontournable dans le traitement d’une multitude de tâches informatiques.

Financement

La formation est finançable via votre CPF. Le tarif inclus la formation et le passage de la certification. Nous renouvellons l’offre promotionnelle à 2000€ pour notre deuxième session du 15 au 19 juillet, profitez-en !

Objectifs pédagogiques

À l’issue de la formation, les stagiaires seront capables de :

  • Créer et paramétrer leur environnement de travail Python
  • Posséder les bases du langage Python
  • Maîtriser la programmation orientée objet avec Python
  • Manipuler des outils de la librairie standard
  • Développer leurs propres programmes Python

Public concerné

Techniciens, ingénieurs, développeurs, scientifiques, enseignants ou tout public souhaitant découvrir le langage Python.

Prérequis

Connaître les bases de l’algorithmie et un langage de programmation ou avoir suivi la formation « Initiation à la programmation avec Python ». Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.

Programme de la formation

Introduction

  • Historique
  • Python 2 vs Python 3
  • Installer Python
  • Installer des librairies
  • Caractéristiques du langage (multi-paradigme, typage dynamique fort, syntaxe claire)
  • Principe de fonctionnement de l’interpréteur (bytecode)
  • Interpréteur officiel CPython et autres interpréteurs
  • Interpréteur interactif
  • Environnement de développement

Premiers pas

  • L’arithmétique de base et opérateurs //, % et **
  • Les variables
  • Fonctions intégrées élémentaires : print(), type()
  • Les types de données simples : int, float, complex, bool, str
  • Notations binaire, octale et hexadécimale, fonctions hex(), oct(), bin()
  • Les opérateurs >>, <<, |, &
  • Ressources documentaires : python.org, help()
  • Commentaire
  • Mots-clés réservés
  • Conventions de nommage

Logique de contrôle de flux

  • Les structures conditionnelles : if, else, elif
  • Principe de l’indentation pour délimiter les blocs d’instruction
  • Les opérateurs de comparaison
  • Les mots clés and, or, not et in
  • Opérateur ternaire
  • La boucle while
  • La boucle for
  • Instructions break et continue
  • Bloc else sur structure répétitive
  • Fonctions intégrées élémentaires : input(), len(), range()

Les fonctions

  • Création d’une fonction
  • La docstring
  • Retourner des valeurs avec l’instruction return
  • Les fonctions génériques (duck typing), les valeurs par défaut et le passage par étiquette
  • Les fonctions lambda
  • L’objet None
  • Passer un nombre d’arguments arbitraire (*args, **kwargs)
  • Les fonctions eval(), exec()
  • Les modules et la méthode import
  • Les fonctions help() et dir()
  • Le bloc if __name__ == ”__main__”
  • Créer et importer un paquet (__init__.py)
  • Les exceptions : principe de fonctionnement et les instructions try … except … else … finally
  • Les notions de générateur et l’instruction yield

Types avancés

  • Données non-modifiables vs données modifiables
  • Utilité des types non-modifiables (optimisation mémoire)
  • Reconnaître un objet non-modifiable avec la fonction hash()
  • Principe des séquences ordonnées (str, tuple et list) et collections (dict, set)
  • La chaîne de caractères unicode (str), définition avec des simples et doubles guillemets, chaines multilignes avec des triples simples ou doubles guillemets
  • Indiçage positif et négatif, tranche de valeurs (slice), opérateurs + et *
  • Méthodes de chaîne de caractères : split(), replace(), lower(), upper(), strip(), join()
  • Les chaînes de caractères formatées (%s, %d, %f), la méthode format() et la f-string
  • Les fonctions str() et repr()
  • Les tableaux d’octets (bytes)
  • Les tuples, les opérateurs + et *, les méthodes count() et index()
  • Les listes, les opérateurs + et *, et les méthodes append(), insert(), sort(), extend() et pop()
  • La fonction enumerate()
  • listes en intension (comprehension list)
  • Les fonctions map, filter et reduce
  • Les fonctions sorted(), reversed(), range() et le mot clé del
  • Les dictionnaires et les méthodes keys(), values(), items(), update(), get()
  • Les sets (set) et les opérateurs – | & et ^

Portée des variables, objets mutables et immutables, références, copie superficielle et profonde

  • Espaces de noms local, global, prédéfini (__builtins__)
  • Références et fonction id()
  • 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

Manipuler des fichiers

  • Interagir avec le système de fichiers (os.path, glob, pathlib et shutil)
  • La fonction open(), la méthode close() et l’attribut closed
  • Les méthodes read(), readline() et readlines()
  • Itérer sur un fichier
  • Utiliser l’instruction with avec les fichiers
  • Écrire avec les méthodes write() et writelines()
  • Utiliser les méthodes tell() et seek()
  • Sérialisation avec les modules pickle et shelve
  • Travailler sur d’autres formats de fichiers avec les modules struct, csv, json et xml

La programmation orientée objet en Python

  • 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
  • La méthode d’initialisation (__init__) et le mot-clé self
  • Les attributs d’instance et les attributs de classe
  • Les méthodes d’instance
  • Les méthodes de classe
  • Les méthodes statiques
  • Instancier un objet et la fonction isinstance()
  • Explorer une classe
  • Espaces de noms global, de l’objet, de la classe
  • Définir ses propres exceptions
  • Propriété (fonction property), accesseur et mutateur
  • Les méthodes spéciales : surcharge d’affichage (__str__ et __repr__), surcharge d’opérateurs (__add__, __radd__, __sub__, __rsub__, __mul__, __rmul__, __truediv__, __rtruediv__, __eq__, __ne__, __lt__, __le__, __gt__, __ge__), surcharge de conteneurs (__len__, __getitem__, __setitem__, __contains__)
  • L’héritage simple et les fonctions issubclass() et super()
  • L’héritage multiple et la méthode mro()
  • La composition

Modules de la bibliothèque standard

  • Interagir avec l’interpréteur : module sys
  • Interagir avec le système d’exploitation : module os
  • Expressions rationnelles : module re
  • Créer des tests unitaires : module unittest
  • Tour d’horizon d’autres modules intéressants de la bibliothèque standard : datetime, math, timeit, urllib, collections, sqlite3

Mini-projet

  • Réaliser une application Python complète de A à Z