Apprendre Python de zéro jusqu'au niveau expert : syntaxe, structures de données, POO, générateurs, décorateurs, typage, tests, async et internals du langage.
Python est un langage interprété, typé dynamiquement, créé par Guido van Rossum en 1991. Interprété veut dire qu'on n'a pas d'étape de compilation manuelle : on écrit un fichier .py, on le lance, il s'exécute. Typé dynamiquement veut dire qu'une variable n'a pas de type déclaré — c'est la valeur qui porte le type.
Si vous n'avez jamais programmé, l'article par où commencer pour apprendre à coder donne une vue d'ensemble avant de plonger ici.
| Domaine | Ce qu'on y fait avec Python |
|---|---|
| Scripts et automatisation | Renommer 10 000 fichiers, parser des logs, piloter une API |
| Web backend | Django, FastAPI, Flask |
| Data science | pandas, NumPy, Jupyter |
| IA / Machine learning | PyTorch, scikit-learn, SDK des LLMs |
| DevOps | Ansible, outils CLI, scripts de déploiement |
Son point faible : la vitesse brute. Une boucle Python pure est 10 à 100 fois plus lente que du C. En pratique, les bibliothèques lourdes (NumPy, PyTorch) sont écrites en C/C++ et Python sert de colle. On verra au chapitre 10 comment contourner ce problème quand il se pose.
Je recommande uv, un gestionnaire écrit en Rust qui installe Python, crée les environnements virtuels et gère les dépendances. Il remplace pip, venv, pyenv et pip-tools d'un coup.
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Puis :
uv python install 3.13
uv python listAlternative classique : télécharger l'installeur sur python.org. Sur Windows, cochez Add python.exe to PATH.
Vérification :
python --versionPython 3.13.1Tapez python sans argument. Vous obtenez une invite >>> où chaque ligne est exécutée immédiatement.
>>> 2 + 3
5
>>> "iducation".upper()
'IDUCATION'
>>> len([1, 2, 3])
3Le REPL est l'outil le plus sous-estimé du débutant. Dès qu'on doute du comportement d'une fonction, on la teste ici en trois secondes. Quittez avec exit() ou Ctrl+D.
Créez un fichier bonjour.py :
nom = input("Ton prénom ? ")
print(f"Bonjour {nom}, bienvenue en Python.")python bonjour.pyTrois notions dans deux lignes :
input() lit une ligne au clavier et renvoie toujours une chaînenom = ... crée une variable, sans mot-clé ni typef"..." est une f-string : tout ce qui est entre {} est évaluéPython n'utilise pas d'accolades pour délimiter les blocs. C'est l'indentation qui compte. Quatre espaces par niveau, c'est la convention (PEP 8).
age = 20
if age >= 18:
print("Majeur")
print("Accès autorisé")
print("Fin") # hors du bloc ifMélanger tabulations et espaces lève une TabError. Configurez votre éditeur pour insérer des espaces.
Chaque projet doit avoir ses propres dépendances, isolées du système. Avec uv :
uv init mon-projet
cd mon-projet
uv add requests
uv run main.pyArborescence générée :
mon-projet/
├── .python-version
├── .venv/
├── main.py
├── pyproject.toml
└── uv.lockpyproject.toml déclare les dépendances, uv.lock fige les versions exactes. Les deux se committent dans Git. Le dossier .venv/ non.
Sans uv, l'équivalent standard :
python -m venv .venv
source .venv/bin/activate # Windows : .venv\Scripts\activate
pip install requestsVS Code avec l'extension Python (Microsoft) et Ruff pour le formatage et le lint. Ruff remplace Black, isort et Flake8, et s'exécute en quelques millisecondes.
uv add --dev ruff
uv run ruff check .
uv run ruff format .Écrivez age.py : demander l'année de naissance, afficher l'âge approximatif. Indice : input() renvoie une chaîne, il faudra la convertir avec int().
annee = int(input("Année de naissance ? "))
print(f"Tu as environ {2026 - annee} ans.")Python est installé, vous savez lancer un script et isoler un projet. Le chapitre suivant attaque le cœur du langage : les variables et les types de base.