🐍 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

#NoteSujet
11-Intro et InstallationREPL, scripts, __name__ == "__main__"
22-Types et Opérateursint, float, str, bool, None, comparaisons
33-Contrôle de Fluxif/elif/else, for, while, match/case
44-Fonctionsdef, *args/**kwargs, portée, lambda, annotations
55-Listes et Tupleslist, tuple, slicing, comprehensions, * unpacking
66-Dictionnaires et Ensemblesdict, set, defaultdict, Counter, fusion |
77- Chaînes et bytesstr, f-strings, bytes, bytearray, encodage
88-Erreurs et Exceptionstry/except/finally, raise ... from, exceptions perso
99-Modules et Paquetsimport, __init__.py, uv, virtualenvs
1010-Programmation Orientée Objetclass, héritage, @property, dunder methods, dataclasses
10b10b-Data Models et Métadonnéesdataclasses avancé, metadata, descripteurs, TypedDict, __slots__
1111-itérateurs et Générateurs__iter__/__next__, yield, yield from, itertools
1212-Entrées-Sortieswith, json, csv, pathlib, tempfile
1313-Bibliothèque Standardre, datetime, math, random, argparse, logging
1414-Décorateurs et Contextepatterns, stacking, classe, @cache, @singledispatch, ExitStack
1515-Programmation Asynchroneasync/await, asyncio.gather, timeouts, aiohttp
1616-Tests et Packagingpytest, pyproject.toml, uv, fixtures, mock
1717-Typage Statique AvancéProtocol, Generic, TypeVar, Self, @overload, TypeGuard
1818-Métaclassestype(), metaclass=, __new__, registre, validation, DSL
1919-Magic Methods Avancés__getattr__/__getattribute__, __new__, __copy__, __instancecheck__
2020-Concurrence Avancéethreading, multiprocessing, ProcessPoolExecutor, GIL, Queue
2121-Performance PythoncProfile, py-spy, numba, vectorisation, __slots__, memory
2222-enumEnum, IntEnum, StrEnum, Flag, auto(), @unique
2323-Design PatternsSingleton, Factory, Strategy, Observer, Repository, EAFP
2424-NumPyarrays, broadcasting, slicing, algèbre linéaire, ufuncs
2525-Import Système Avancéimportlib, finders/loaders, namespace packages, lazy loading
2626-Network et APIsrequests, httpx, aiohttp, sessions, retry
2727-Sérialisation Avancéepickle, parquet, hdf5, zarr, msgpack, protocoles
2828-Config et CLIargparse avancé, typer, pydantic-settings, hydra
2929-Outils Modernesuv, ruff, ty, pyrefly, workflow complet
3030-ABCABC, @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)
  • dataclasses avancé, 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


🔗 Accueil