Software">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
0 vues9 pages

Formation Python

Le document présente les bases de Python, y compris l'installation sur Unix/Linux et Windows, la configuration des variables d'environnement PATH, et les différentes manières de lancer l'interpréteur Python. Il décrit également les options de ligne de commande disponibles pour l'exécution de Python. Enfin, il propose un cursus complet en 8 modules pour devenir expert en Python, couvrant des sujets avancés tels que la programmation orientée objet, la métaprogrammation, et l'architecture logicielle.

Transféré par

trif1961
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues9 pages

Formation Python

Le document présente les bases de Python, y compris l'installation sur Unix/Linux et Windows, la configuration des variables d'environnement PATH, et les différentes manières de lancer l'interpréteur Python. Il décrit également les options de ligne de commande disponibles pour l'exécution de Python. Enfin, il propose un cursus complet en 8 modules pour devenir expert en Python, couvrant des sujets avancés tels que la programmation orientée objet, la métaprogrammation, et l'architecture logicielle.

Transféré par

trif1961
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Notions de bases Python

Installing Python
Unix and Linux Installation
Here are the simple steps to install Python on Unix/Linux machine.

●​ Open a Web browser and go to [Link]

●​ Follow the link to download zipped source code available for Unix/Linux.

●​ Download and extract files.

●​ Editing the Modules/Setup file if you want to customize some options.

●​ run ./configure script

●​ make

●​ make install

This installs Python at standard location /usr/local/bin and its libraries at


/usr/local/lib/pythonXX where XX is the version of Python.

Windows Installation
Here are the steps to install Python on Windows machine.

●​ Open a Web browser and go to [Link]

●​ Follow the link for the Windows installer [Link] file where XYZ is the

version you need to install.

Setting path at Unix/Linux


To add the Python directory to the path for a particular session in Unix −
●​ In the csh shell − type setenv PATH "$PATH:/usr/local/bin/python" and press

Enter.

●​ In the bash shell (Linux) − type export PATH="$PATH:/usr/local/bin/python"

and press Enter.

●​ In the sh or ksh shell − type PATH="$PATH:/usr/local/bin/python" and press

Enter.

●​ Note − /usr/local/bin/python is the path of the Python directory

Setting path at Windows

Running Python
There are three different ways to start Python −

Interactive Interpreter
You can start Python from Unix, DOS, or any other system that provides you a
command-line interpreter or shell window.

Enter python the command line.


Start coding right away in the interactive interpreter.

$python # Unix/Linux C:> python # Windows/DOS

Here is the list of all the available command line options −

[Link] Option & Description


.

1 -d It provides debug output.

2 -O It generates optimized bytecode (resulting in .pyo files).

3 -S Do not run import site to look for Python paths on startup.

4 -v verbose output (detailed trace on import statements).

5 -X disable class-based built-in exceptions (just use strings); obsolete

starting with version 1.6.

6 -c cmd : run Python script sent in as cmd string

Le document fourni marque le début de la formation ("Notions de bases Python"). Il

traite principalement de l'installation du langage sous Unix/Linux et Windows, de la


configuration des variables d'environnement PATH, du lancement de l'interpréteur

interactif et de quelques options de ligne de commande (-d, -O, -S, -v, -X, -c).

Pour passer de cette introduction à un niveau d'Expert Python, voici le programme

complet structuré en 8 modules progressifs, intégrant l'existant et ajoutant

l'ensemble des notions avancées indispensables.

📌 Synthèse du Module Initial (Document fourni)


●​ Installation & Environnement :

○​ Téléchargement du code source Unix/Linux sur [Link], édition

optionnelle de Modules/Setup, puis compilation via ./configure, make et

make install (emplacement par défaut /usr/local/bin).

○​ Téléchargement de l'installateur Windows (.msi).

●​ Variables d'environnement PATH :

○​ Configuration du PATH sous Unix selon le shell : export

PATH="$PATH:/usr/local/bin/python" (bash), setenv PATH

"$PATH:/usr/local/bin/python" (csh), ou

PATH="$PATH:/usr/local/bin/python" (sh/ksh).

○​ Modification du PATH sous Windows via l'interface des variables

d'environnement système.

●​ Exécution de l'interpréteur :

○​ Mode interactif en ligne de commande via $python sous Unix ou C:>

python sous Windows.

○​ Utilisation des drapeaux système : -d (debug), -O (génération de

bytecode optimisé .pyo), -S (désactivation de l'import de site), -v

(mode verbeux pour les imports), -X (désactivation obsolète des

exceptions basées sur les classes) et -c cmd (exécution directe d'un script

transmis en chaîne).
🎓 Cursus Complet pour Devenir Expert Python
Module 1 : Gestion Moderne de l'Environnement & Interpréteur

1.​ Outillage moderne d'environnement :

○​ Gestionnaires de versions (pyenv).

○​ Isolation des dépendances (venv, poetry, uv, conda).

2.​ Fonctionnement interne de CPython :

○​ Compilation du code source en bytecode (.pyc).

○​ Structure de la mémoire, Global Interpreter Lock (GIL) et modèle

d'exécution.

○​ Arbre syntaxique abstrait (module ast).

Module 2 : Fondamentaux Approfondis du Langage

1.​ Structures de données natives & complexité :

○​ Listes, Tuples, Dictionnaires (table de hachage), Ensembles (set).

○​ Compréhensions de listes, dictionnaires et ensembles.

2.​ Mémoire et Gestion des Références :

○​ Compteur de références, Garbage Collector (module gc).

○​ Objets mutables vs immutables, copie superficielle (copy) vs copie

profonde (deepcopy).

3.​ Fonctions avancées :

○​ Portée des variables (règle LEGB : Local, Enclosing, Global, Built-in).

○​ Closures et fonctions de premier ordre.

○​ Arguments universels (*args, **kwargs) et arguments nommés

obligatoires.

Module 3 : Programmation Orientée Objet (POO) Avancée

1.​ Encapsulation et Propriétés :


○​ Attributs privés, protégés et memento de nommage (Name Mangling).

○​ Utilisation avancée du décorateur @property (getters, setters, deleters).

2.​ Héritage et Modèle Objet :

○​ Héritage multiple, résolution de l'ordre des méthodes (MRO / Algorithme

C3 Linearization) et fonction super().

3.​ Méthodes Dunder (Magic Methods) :

○​ Initialisation et représentation : __init__, __new__, __str__, __repr__.

○​ Égalité et hachage : __eq__, __hash__.

○​ Conteneurs personnalisés : __len__, __getitem__, __setitem__,

__iter__.

○​ Gestionnaires de contexte : __enter__, __exit__.

4.​ Descripteurs :

○​ Protocole des descripteurs (__get__, __set__, __delete__) pour la

validation automatique d'attributs.

Module 4 : Métaprogrammation & Motifs Avancés

1.​ Générateurs et Itertools :

○​ Générateurs et expression yield, yield from.

○​ Utilisation du module itertools (chain, cycle, groupby, combinations).

2.​ Décorateurs :

○​ Décorateurs de fonctions, décorateurs acceptant des arguments (fabriques

de décorateurs).

○​ Décorateurs de classes et conservation des métadonnées

([Link]).

3.​ Métaclasses & Introspection :

○​ Fonctionnement de type comme métaclasse par défaut.

○​ Création de métaclasses sur-mesure pour la modification dynamique des

classes lors de l'instanciation.

○​ Inspection du code exécutable avec le module inspect.


Module 5 : Concurrence, Asynchronisme & Performance

1.​ Multi-threading vs Multi-processing :

○​ Contournement du GIL pour les tâches orientées calcul (CPU-bound) via

multiprocessing.

○​ Threading pour les tâches I/O-bound (threading, [Link]).

2.​ Programmation Asynchrone (asyncio) :

○​ Boucle d'événements (Event Loop), fonctions coroutines (async / await).

○​ Tâches, Futures, et gestion des exceptions asynchrones.

○​ Clients et serveurs HTTP/WebSockets asynchrones (aiohttp, httpx).

Module 6 : Typage, Tests & Qualité de Code

1.​ Typage Statique Avançé :

○​ Module typing (Union, Optional, Callable, Generics, Protocol,

TypeVar).

○​ Vérification statique de type avec mypy.

○​ Validation dynamique de données avec Pydantic.

2.​ Tests Unitaires et d'Intégration :

○​ Framework pytest : Fixtures, Paramétrage, Mocks ([Link]),

Monkeypatching.

○​ Couverture de code (pytest-cov).

3.​ Qualité et CI/CD :

○​ Linter et formateurs : ruff, black, flake8.

○​ Hooks pre-commit pour l'automatisation.

Module 7 : Architecture Logicielle, Design Patterns & Packaging

1.​ Design Patterns en Python :

○​ Patterns Créationnels : Singleton, Factory, Builder.

○​ Patterns Structurels : Decorator, Adapter, Proxy.


○​ Patterns Comportementaux : Strategy, Observer, Command.

2.​ Architecture Propre :

○​ Principes SOLID appliqués à Python.

○​ Clean Architecture et Architecture Hexagonale / DDD (Domain-Driven

Design).

3.​ Packaging et Distribution :

○​ Configuration de projet avec [Link].

○​ Création et publication de packages sur PyPI via build et twine.

Module 8 : Profilage, Optimisation & Extensions C/Rust

1.​ Profilage de Code :

○​ Profilage temporel (cProfile, line_profiler).

○​ Profilage mémoire (memory_profiler).

2.​ Optimisation Mémoire & Vitesse :

○​ Réduction de l'empreinte mémoire avec __slots__.

○​ Compilateurs JIT (PyPy) et extensions C/Rust (Cython, PyO3).

💡 Projet Fil Rouge pour valider l'expertise


Pour mettre en pratique ces concepts, réalisez le projet suivant :

●​ Sujet : Développer un moteur de traitement de données asynchrone (ex: web

scraper / agrégateur de métriques en temps réel).

●​ Exigences :

1.​ Validation des données reçues via Pydantic et typage strict vérifié par

mypy.

2.​ Architecture en Clean Architecture avec gestionnaire de contexte et

métaclasses pour l'enregistrement automatique des plugins.

3.​ Traitement parallèle mixte (asyncio pour l'I/O et multiprocessing pour

les calculs de métriques).


4.​ Suite de tests complète avec pytest (fixtures + mocks) atteignant > 90%

de couverture.

5.​ Packaging standardisé avec [Link] et validation par hooks

pre-commit.

Vous aimerez peut-être aussi