Fichiers ou interpréteur interactif ?

Nous avons vu les deux modes d’exécution de l’interpréteur Python, par fichiers et en interactif.
Mais quel mode est le meilleur choix dans quelle situation ? C’est ce que nous allons voir dans ce chapitre.

Interpréteur interactif

L’interpréteur interactif est très pratique pour tester un bout de code rapidement ou explorer une valeur : on peut directement voir ce que contient une valeur, et facilement essayer telle ou telle ligne de code pour vérifier qu’elle fonctionne.
Il permet aussi de réaliser des calculs étape par étape.

Mais il n’est pas adapté pour écrire du plus long code, il gère mal l’indentation (c’est une spécificité du langage Python sur laquelle nous reviendrons par la suite) et les blocs de code à la suite.
De plus tout code tapé dans l’interpréteur interactif est à usage unique : il est possible de le retrouver dans l’historique de saisie, mais les lignes précédemment tapées ne sont plus modifiables.

Au long de ce cours j’utiliserai parfois le terme de REPL pour désigner l’interpréteur interactif. Il signifie Read-Evaluate-Print Loop, soit un programme chargé de lire, évaluer et afficher en boucle ce qu’on lui demande.

C’est un terme plus générique que l’on rencontre aussi dans d’autres langages.

Écriture dans des fichiers

À l’inverse, les fichiers permettent d’éditer et de revenir sur le code, et donc de le sauvegarder. Ils permettent de gérer des codes beaucoup plus gros sans s’y perdre, parce que tout cela est géré par l’éditeur de texte.
Il est en effet possible de remonter dans le code pour aller modifier n’importe quelle ligne, puis de le réexécuter en totalité.

De plus, de nombreux éditeurs proposent une coloration syntaxique du code, ce qui permet d’avoir un rendu bien plus lisible, en identifiant facilement les mots-clés et constructions du langage.

Enfin, un programme s’écrit forcément dans des fichiers, pour pouvoir être partagé.

Mais cela demande d’écrire et de sauvegarder le fichier chaque fois que l’on veut tester une nouvelle partie du code, et d’utiliser print pour afficher les résultats voulus.


Les deux modes ont leurs avantages et leurs inconvénients, il convient donc de tirer parti des deux.
De plus ils ne sont pas exclusifs, il est ainsi possible de lancer l’interpréteur avec l’option -i sur un fichier, pour obtenir un interpréteur interactif à la suite de l’exécution d’un fichier. Ce qui est bien pratique pour vérifier un résultat dans un programme en cours de développement.

Par exemple si on reprend le fichier suivant :

print(8 + 5)
print(3 * 7)
calc.py

On peut l’exécuter avec l’option -i et continuer à utiliser l’interpréteur à la suite du fichier.

% python -i calc.py
13
21
>>> 1 / 2
0.5

Son utilité n’apparaît peut-être pas flagrante pour le moment, mais ça nous sera utile quand nous aurons des fichiers plus complets et que nous voudrons y tester une valeur en particulier.


L’option -c de l’interpréteur est aussi utile pour lancer l’interpréteur et exécuter une simple ligne.

$ python -c 'print(1+5)'
6

Dans ce tutoriel, j’utiliserai toujours les signes >>> pour présenter les codes exécutés dans l’interpréteur interactif, et donc suivis du résultat affiché. Les autres codes seront considérés comme écrits dans des fichiers.