Leçon 00-1 — Installer Python et lancer son premier script
1. Objectif
À la fin de cette leçon tu sauras : vérifier que Python est installé sur ta machine Windows, écrire un fichier hello.py dans VS Code, le lancer depuis le terminal avec python hello.py, et expliquer la différence entre le REPL interactif et l'exécution d'un script.
2. Pourquoi c'est important
Tout le reste de la méthode repose sur un geste unique, répété des centaines de fois : écrire un fichier .py, le lancer, lire ce qui sort. Si ce geste n'est pas fluide — si tu ne sais pas où est ton fichier, ni pourquoi le terminal répond « python n'est pas reconnu » — chaque exercice devient un combat contre l'environnement au lieu d'un exercice de programmation. Cette leçon rend le geste automatique. C'est aussi la leçon qui t'évitera le piège classique du débutant : rester coincé dans des tutoriels en ligne où on clique sur « Run » sans jamais comprendre ce qui exécute quoi.
3. Explication simple
Python est un programme installé sur ta machine, comme un navigateur ou un jeu. Son travail : lire un fichier texte contenant des instructions et les exécuter une par une, de haut en bas.
Un fichier .py est un simple fichier texte. Rien de magique : tu pourrais l'ouvrir avec le Bloc-notes. L'extension .py est une convention qui dit « ceci contient du code Python ». C'est VS Code qui le colore joliment, mais le fichier lui-même n'est que du texte.
Le terminal est l'endroit où tu donnes des ordres à ta machine en tapant. Quand tu tapes :
python hello.py
tu dis : « lance le programme python, et donne-lui le fichier hello.py à exécuter ». Python lit le fichier, exécute chaque ligne, affiche ce qu'il y a à afficher, puis rend la main.
Il existe deux façons d'utiliser Python :
- Le script : tu écris tout dans un fichier, tu lances, tout s'exécute. C'est le mode « programme » — celui qu'on utilisera 95 % du temps.
- Le REPL (Read-Eval-Print Loop) : tu tapes
pythontout seul, et Python attend tes instructions une par une, en répondant immédiatement. C'est le mode « calculette / laboratoire » — parfait pour tester une idée en 10 secondes, inutilisable pour un vrai programme (tout disparaît quand tu fermes).
4. Explication approfondie
Quatre choses que l'explication simple a cachées :
a) Comment le terminal trouve python : le PATH. Quand tu tapes python, le terminal ne fouille pas tout ton disque. Il consulte une liste de dossiers appelée PATH (une variable d'environnement) et cherche un programme nommé python.exe dans ces dossiers, dans l'ordre. Si aucun dossier du PATH ne contient python.exe → « python n'est pas reconnu ». C'est LE problème n°1 des débutants sous Windows, et il ne veut pas dire que Python n'est pas installé : il veut dire que le terminal ne sait pas où il est.
b) Le py launcher, spécifique à Windows. L'installateur Python pour Windows installe aussi py.exe dans un dossier système (toujours dans le PATH). py sait trouver toutes les versions de Python installées, même si python n'est pas dans le PATH. D'où le réflexe de diagnostic :
python --version # si ça marche : tout va bien
py --version # si SEUL celui-ci marche : Python est installé,
# mais pas dans le PATH
Sur cette machine, Python 3.14 est déjà installé (C:\Users\jtron\AppData\Local\Python\pythoncore-3.14-64\). Si un jour tu réinstalles : coche « Add python.exe to PATH » dans l'installateur — cette case décochée est la cause de 90 % des « python n'est pas reconnu ».
c) Le terminal a une position : le dossier courant. python hello.py utilise un chemin relatif : Python cherche hello.py dans le dossier où le terminal se trouve actuellement, pas ailleurs. Si ton terminal est dans C:\Users\jtron et ton fichier dans C:\Users\jtron\Claude\learnpython, la commande échoue avec No such file or directory — le fichier existe, mais pas ici. La leçon 00-2 approfondit ; retiens dès maintenant : avant de lancer un script, vérifie où tu es (pwd).
d) REPL et script ne se mélangent pas. Le prompt te dit dans quel monde tu es :
jtron@machine MINGW64 ~/Claude/learnpython
$ ← terminal (Git Bash) : commandes système
>>> ← REPL Python : code Python uniquement
Taper du Python dans le terminal, ou une commande terminal dans le REPL, donne une erreur dans les deux sens. C'est une confusion normale la première semaine ; le réflexe à ancrer : regarde le début de la ligne avant de taper.
Difficulté honnête : rien ici n'est intellectuellement difficile, mais c'est déroutant parce que trois programmes différents (terminal, Python, VS Code) interagissent et que les messages d'erreur viennent tantôt de l'un, tantôt de l'autre. Compte une session complète (1 h 30 – 2 h), et n'hésite pas à refaire les manipulations le lendemain de tête.
5. Exemples commentés
Exemple 1 — vérifier l'installation
python --version
Sortie attendue :
Python 3.14.3
Le numéro exact peut différer ; ce qui compte : ça commence par 3. et il n'y a pas de message d'erreur. Teste aussi py --version (voir section 4b).
Exemple 2 — ton premier script
Dans VS Code, crée le fichier hello.py dans lessons/level-00-environnement/exercices/mes-reponses/ avec ce contenu :
print("Hello, world!")
print("Python works on this machine.")
Sauvegarde (Ctrl+S — l'oublier est l'erreur n°4, section 6). Puis dans le terminal, place-toi dans le bon dossier et lance :
cd ~/Claude/learnpython/lessons/level-00-environnement/exercices/mes-reponses
python hello.py
Sortie :
Hello, world!
Python works on this machine.
Deux lignes, dans l'ordre du fichier : Python exécute de haut en bas.
Exemple 3 — le REPL, mode laboratoire
python
Python 3.14.3 (main, ...) on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 3
5
>>> print("test")
test
>>> exit()
Chaque ligne est exécutée immédiatement. Note : 2 + 3 affiche 5 sans print — le REPL affiche automatiquement le résultat de chaque expression (un script, lui, n'affiche QUE ce que tu print). exit() (ou Ctrl+D dans Git Bash) rend la main au terminal : le prompt redevient $.
Exemple 4 — le même code, script vs REPL
# contenu de compute.py
result = 40 + 2
result
print("done")
python compute.py
Sortie :
done
La ligne result toute seule ne produit rien dans un script (contrairement au REPL). Un script est muet sauf ordre explicite d'afficher. Cette différence piège tout le monde une fois — maintenant tu es prévenu.
Exemple 5 — chemin relatif vs position du terminal
cd ~/Claude/learnpython
python hello.py
C:\Users\jtron\AppData\Local\Python\pythoncore-3.14-64\python.exe: can't open file 'C:\\Users\\jtron\\Claude\\learnpython\\hello.py': [Errno 2] No such file or directory
Le fichier existe — mais dans .../exercices/mes-reponses/, pas à la racine du repo. Deux corrections valables :
python lessons/level-00-environnement/exercices/mes-reponses/hello.py # chemin depuis ici
# ou
cd lessons/level-00-environnement/exercices/mes-reponses && python hello.py
6. Erreurs fréquentes
1) « python n'est pas reconnu » — le PATH
bash: python: command not found
(ou en PowerShell : python : Le terme «python» n'est pas reconnu...). Diagnostic : tape py --version. S'il répond, Python est installé mais absent du PATH — utilise py hello.py en attendant, et à la prochaine installation coche « Add python.exe to PATH ». Si py échoue aussi, Python n'est pas installé : télécharge-le sur python.org/downloads (bouton jaune, version 3.x). Après toute installation : ferme et rouvre le terminal — un terminal déjà ouvert garde l'ancien PATH.
2) Lancer depuis le mauvais dossier
python: can't open file '...\\hello.py': [Errno 2] No such file or directory
Ce n'est PAS une erreur Python : ton programme n'a même pas démarré. Le terminal est simplement ailleurs que le fichier. Correction : pwd pour voir où tu es, ls pour vérifier que hello.py est listé, cd vers le bon dossier. Si ls ne montre pas ton fichier, il n'est pas là — point.
3) Le fichier s'appelle en réalité hello.py.txt
Windows cache les extensions connues par défaut. Si tu crées le fichier via le Bloc-notes ou l'explorateur, tu peux obtenir hello.py.txt affiché comme hello.py. Symptôme : ls dans le terminal montre hello.py.txt, ou VS Code ne colore pas le code. Correction durable : Explorateur → Affichage → Afficher → Extensions de noms de fichiers (coché). Prévention : crée toujours tes fichiers depuis VS Code ou le terminal, jamais depuis le Bloc-notes.
4) Modifier le fichier sans sauvegarder, puis relancer
Tu corriges ton code, tu relances, rien ne change. Regarde l'onglet dans VS Code : un point blanc à la place de la croix = modifications non sauvegardées. Python exécute le fichier sur le disque, pas ce qui est à l'écran. Correction : Ctrl+S, relance. C'est l'erreur silencieuse la plus frustrante du niveau — quand « ma correction ne marche pas », vérifie D'ABORD le point blanc.
5) Taper une commande terminal dans le REPL (et inversement)
>>> python hello.py
File "<stdin>", line 1
python hello.py
^^^^^
SyntaxError: invalid syntax
Tu es DÉJÀ dans Python (>>>) : python hello.py n'est pas du code Python. Sors avec exit(), puis relance depuis le $. Le symétrique :
$ print("hello")
bash: syntax error near unexpected token `"hello"'
print(...) est du Python, le terminal ne le comprend pas. Règle : $ = commandes système, >>> = code Python.
6) Guillemets « typographiques » collés depuis le web
print(“hello”) # SyntaxError: invalid character '“' (U+201C)
En copiant du code depuis un site ou un PDF, les guillemets droits " peuvent devenir des guillemets courbes “” que Python rejette. Correction : retape les guillemets au clavier. Prévention : tape le code à la main (c'est de toute façon la règle de la méthode).
7. Lire les messages d'erreur
À ce niveau, les erreurs viennent de deux émetteurs différents, et savoir lequel te parle est la moitié du diagnostic.
Erreur du terminal ou du lanceur (ton programme n'a pas démarré) :
bash: python: command not found
python: can't open file 'C:\\Users\\jtron\\hello.py': [Errno 2] No such file or directory
Pas de mot Traceback → le problème est dans la commande, le PATH ou le dossier courant. Inutile de relire ton code : il n'a pas été lu.
Erreur de Python (ton programme a démarré, puis a échoué) :
Traceback (most recent call last):
File "C:\Users\jtron\Claude\learnpython\lessons\level-00-environnement\exercices\mes-reponses\hello.py", line 2, in <module>
print("second line"
^
SyntaxError: '(' was never closed
Méthode de lecture — toujours commencer par la dernière ligne :
- Dernière ligne : le type (
SyntaxError) et le message ('(' was never closed: une parenthèse ouverte, jamais fermée). - Au-dessus : le fichier exact et la ligne (
hello.py,line 2), avec un^sous l'endroit suspect. Pour uneSyntaxError, l'erreur est là ou juste avant (ligne précédente, souvent). - Ouvre le fichier à cette ligne, corrige, Ctrl+S, relance.
Cas particulier de SyntaxError : elle survient avant l'exécution — Python n'a exécuté AUCUNE ligne du fichier, même les lignes correctes du début.
8. Exercices — faciles
Règles : tout se passe dans
lessons/level-00-environnement/exercices/mes-reponses/. Tape les commandes à la main. Prédis ce qui va se passer AVANT d'appuyer sur Entrée.
a) Dans le terminal, exécute python --version puis py --version. Note dans ton journal les deux sorties exactes et ce que leur ressemblance (ou différence) t'apprend sur ton installation.
b) Crée hello.py dans VS Code (contenu de l'exemple 2), sauvegarde, place le terminal dans le bon dossier, lance-le. Objectif : les deux lignes s'affichent, sans erreur, du premier coup.
c) Crée trois scripts : bonjour.py (affiche une salutation), machine.py (affiche le nom de ta machine, tapé en dur), date.py (affiche la date du jour, tapée en dur). Lance les trois sans quitter le terminal, avec trois commandes successives (flèche haut pour rappeler et modifier la commande précédente — plus rapide que retaper).
9. Exercices — moyens
a) Provoque volontairement l'erreur « mauvais dossier » : remonte à la racine du repo (cd ~/Claude/learnpython) et lance python hello.py. Lis le message obtenu et réponds par écrit : (1) est-ce une erreur du terminal, du lanceur Python ou de ton code ? (2) quel indice dans le message donne le dossier où Python a cherché ? Puis répare sans faire cd : lance le script depuis la racine en donnant son chemin complet.
b) Ouvre le REPL et fais-lui calculer le nombre de secondes dans une semaine (60 * 60 * 24 * 7). Puis écris week.py qui affiche le même calcul, et compare : pourquoi 60 * 60 * 24 * 7 seul sur sa ligne affiche-t-il le résultat dans le REPL mais rien dans le script ? Quelle ligne faut-il dans le script ? (Relis l'exemple 4 si besoin.)
c) Dans le REPL, tape volontairement python week.py et lis l'erreur. Sors du REPL, puis dans le terminal tape volontairement print("test") et lis l'erreur. Note dans ton journal comment tu reconnaîtras chaque situation la prochaine fois (indice : le début de la ligne).
10. Exercices — difficiles
a) Sans VS Code ni explorateur, uniquement au terminal : crée un dossier sandbox dans mes-reponses/, crée dedans un fichier trap.py contenant un print, puis débrouille-toi pour le lancer depuis mes-reponses/ (pas depuis sandbox/). Enfin, provoque l'erreur [Errno 2] en le lançant avec un chemin faux, et explique dans ton journal la différence exacte entre les deux commandes.
- Indice 1 :
mkdircrée un dossier ; pour écrire une ligne dans un fichier au terminal,echo 'print("trapped")' > sandbox/trap.pyfonctionne en Git Bash (les commandes sont détaillées en leçon 00-2 — c'est un avant-goût). - Indice 2 : depuis
mes-reponses/, le fichier n'est pastrap.py— il est dans un sous-dossier. Comment l'indiquer à Python ? - Indice 3 :
python sandbox/trap.py(chemin relatif traversant un dossier). Pour l'erreur : n'importe quel chemin qui ne correspond à aucun fichier réel, par ex.python trap.py.
11. Mini-projet lié — « fiche machine »
Écris machine_info.py (15–20 min) : un script qui affiche une fiche d'identité de ton environnement, tapée en dur, par exemple :
=== Machine setup ===
OS : Windows 11
Python : 3.14.3
Editor : VS Code
Terminal : Git Bash
Repo : C:/Users/jtron/Claude/learnpython
=====================
Contraintes : au moins 6 lignes de print ; les valeurs doivent être les vraies (récupère la version exacte avec python --version). Puis lance-le trois fois : depuis mes-reponses/, depuis la racine du repo (chemin relatif), et avec un chemin absolu complet (python C:/Users/jtron/Claude/...). Les trois doivent afficher la même chose. Ce fichier te resservira en leçon 00-3 comme matière à committer.
12. Correction / méthode de correction
Les corrections détaillées des manipulations sont dans solutions/serie-00-solutions.md.
Méthode : (1) finis TOUTES les manipulations avant d'ouvrir les solutions ; (2) pour les exercices de manipulation, compare les commandes exactes que tu as tapées avec celles de la correction — un écart qui marche quand même mérite d'être compris ; (3) note dans ton journal chaque erreur rencontrée avec son message exact : ce catalogue personnel d'erreurs vaut de l'or ; (4) refais l'exercice 9-a de tête demain, sans relire la leçon.
13. À retenir
- Un fichier
.pyest un fichier texte ;python fichier.pydemande au programme Python de l'exécuter de haut en bas. - Le terminal trouve
pythongrâce au PATH ;py --versionest le test de secours quandpythonn'est « pas reconnu ». python hello.pycherche le fichier dans le dossier courant du terminal —pwdetlsavant de lancer, toujours.[Errno 2] No such file or directory= mauvais dossier ou mauvais nom, le code n'a même pas été lu.- REPL (
>>>) = laboratoire jetable ; script = programme durable. Le REPL affiche les expressions tout seul, le script n'affiche que lesprint. - Ctrl+S avant chaque exécution : Python lit le disque, pas ton écran.
- Pas de mot
Tracebackdans l'erreur = le problème est dans la commande, pas dans le code.
14. Questions de révision
- Que fait exactement le terminal quand tu tapes
python? Où cherche-t-il ? python --versionéchoue maispy --versionmarche : qu'est-ce que ça t'apprend, et quelles sont tes deux options ?- Quelle est la différence entre
bash: python: command not foundet[Errno 2] No such file or directory? Lequel des deux implique que Python fonctionne ? - Pourquoi
2 + 3affiche5dans le REPL mais un script contenant seulement2 + 3n'affiche rien ? - Ton script corrigé produit toujours l'ancienne sortie : quelle est la cause la plus probable, et où la vérifies-tu dans VS Code ?
- Pourquoi créer un fichier
.pydepuis le Bloc-notes est-il risqué sous Windows ? - Une
SyntaxErrorà la ligne 5 : combien de lignes du script ont été exécutées avant l'erreur ?
15. Checklist de compréhension
- Je peux vérifier ma version de Python sans regarder la leçon.
- Je peux créer un
.pydans VS Code et le lancer au terminal du premier coup, depuis le bon dossier. - Je peux provoquer ET réparer l'erreur
[Errno 2]en moins d'une minute. - Je sais entrer dans le REPL, y faire un calcul, en sortir.
- Je peux expliquer à quelqu'un pourquoi le REPL affiche
5pour2 + 3mais pas le script. - J'ai le réflexe Ctrl+S avant chaque exécution (le point blanc de l'onglet ne me piège plus).
- Le mini-projet
machine_info.pytourne depuis trois dossiers différents.
Si une case reste vide : refais les exercices de la section correspondante demain, AVANT d'ouvrir la leçon suivante.
16. Commit conseillé
Git est le sujet de la leçon 00-3 — si tu ne l'as pas encore faite, garde simplement tes fichiers : ils serviront de matière à ton premier commit réel. Si tu reviens ici après 00-3 :
git add lessons/level-00-environnement/exercices/mes-reponses/
git commit -m "exercises: complete lesson 00-1 first script"
Puis, si c'est ta fin de session : entrée de journal + git push.