🐍 Python — Notes d’apprentissage
Python 3.13+ : cours progressif basé sur la documentation officielle. Destiné à la maîtrise du langage pour le calcul scientifique, le prototypage ML, et la rédaction d’articles MLOSS.
Cours
| # | Note | Sujet |
|---|---|---|
| 1 | 1-Intro et Installation | REPL, scripts, __name__ == "__main__" |
| 2 | 2-Types et Opérateurs | int, float, str, bool, None, comparaisons |
| 3 | 3-Contrôle de Flux | if/elif/else, for, while, match/case |
| 4 | 4-Fonctions | def, *args/**kwargs, portée, lambda, annotations |
| 5 | 5-Listes et Tuples | list, tuple, slicing, comprehensions, * unpacking |
| 6 | 6-Dictionnaires et Ensembles | dict, set, defaultdict, Counter, fusion | |
| 7 | 7- Chaînes et bytes | str, f-strings, bytes, bytearray, encodage |
| 8 | 8-Erreurs et Exceptions | try/except/finally, raise ... from, exceptions perso |
| 9 | 9-Modules et Paquets | import, __init__.py, uv, virtualenvs |
| 10 | 10-Programmation Orientée Objet | class, héritage, @property, dunder methods, dataclasses |
| 10b | 10b-Data Models et Métadonnées | dataclasses avancé, metadata, descripteurs, TypedDict, __slots__ |
| 11 | 11-itérateurs et Générateurs | __iter__/__next__, yield, yield from, itertools |
| 12 | 12-Entrées-Sorties | with, json, csv, pathlib, tempfile |
| 13 | 13-Bibliothèque Standard | re, datetime, math, random, argparse, logging |
| 14 | 14-Décorateurs et Contexte | patterns, stacking, classe, @cache, @singledispatch, ExitStack |
| 15 | 15-Programmation Asynchrone | async/await, asyncio.gather, timeouts, aiohttp |
| 16 | 16-Tests et Packaging | pytest, pyproject.toml, uv, fixtures, mock |
| 17 | 17-Typage Statique Avancé | Protocol, Generic, TypeVar, Self, @overload, TypeGuard |
| 18 | 18-Métaclasses | type(), metaclass=, __new__, registre, validation, DSL |
| 19 | 19-Magic Methods Avancés | __getattr__/__getattribute__, __new__, __copy__, __instancecheck__ |
| 20 | 20-Concurrence Avancée | threading, multiprocessing, ProcessPoolExecutor, GIL, Queue |
| 21 | 21-Performance Python | cProfile, py-spy, numba, vectorisation, __slots__, memory |
| 22 | 22-enum | Enum, IntEnum, StrEnum, Flag, auto(), @unique |
| 23 | 23-Design Patterns | Singleton, Factory, Strategy, Observer, Repository, EAFP |
| 24 | 24-NumPy | arrays, broadcasting, slicing, algèbre linéaire, ufuncs |
| 25 | 25-Import Système Avancé | importlib, finders/loaders, namespace packages, lazy loading |
| 26 | 26-Network et APIs | requests, httpx, aiohttp, sessions, retry |
| 27 | 27-Sérialisation Avancée | pickle, parquet, hdf5, zarr, msgpack, protocoles |
| 28 | 28-Config et CLI | argparse avancé, typer, pydantic-settings, hydra |
| 29 | 29-Outils Modernes | uv, ruff, ty, pyrefly, workflow complet |
| 30 | 30-ABC | ABC, @abstractmethod, register(), __subclasshook__, ABC vs Protocol |
Objectifs
- Types, opérateurs, contrôle de flux
- Fonctions, portée, lambdas
- Listes, tuples, dictionnaires, ensembles
- Comprehensions et slicing
- Gestion d’erreurs
- Modules et organisation du code
- POO (classes, héritage,
@property, dunder methods) -
dataclassesavancé,metadata, descripteurs,TypedDict - Itérateurs, générateurs,
itertools - Entrées-sorties, fichiers, sérialisation
- Bibliothèque standard (
re,datetime,collections) - Décorateurs (patterns, stacking, classe,
@cache,@singledispatch) - Programmation asynchrone
- Tests et packaging
- Typage statique avancé (
Protocol,Generic,Self,TypeGuard) - Métaclasses et
__init_subclass__ - Magic methods avancés (
__getattr__,__new__,__copy__) - Concurrence (threads, processes, GIL, executors)
- Performance (
cProfile,numba, vectorisation) -
enum - Design patterns pythoniques
- NumPy (arrays, broadcasting, algèbre linéaire)
- Import système avancé (finders/loaders, hooks)
- Network & APIs (
requests,httpx,aiohttp) - Sérialisation avancée (
parquet,hdf5,zarr,msgpack) - Config & CLI (
typer,pydantic-settings,hydra) - Outils modernes (
uv,ruff,ty,pyrefly) - ABC (
@abstractmethod,register(),__subclasshook__)
Ressources
- Documentation officielle Python
- Python Tutor — visualiseur d’exécution
- mypy — vérification statique
- pytest
- uv — gestionnaire de paquets
🔗 Accueil