2.1 Le shell Python
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Utiliser un shell Python pour exécuter des instructions et des expressions de manière interactive.
- Expliquer la fonction des raccourcis clavier des flèches haut et bas.
L'interpréteur
Python est un langage de haut niveau, ce qui signifie que le code source est conçu pour être compréhensible par les humains. Les ordinateurs, en revanche, ne comprennent que le langage machine de bas niveau composé de 1 et de 0. Les programmes écrits dans des langages de haut niveau doivent être traduits en code machine pour être exécutés. Ce processus de traduction peut se faire en une seule fois ou au fur et à mesure, selon le langage.
Python est un langage interprété : le code source est traduit ligne par ligne pendant l'exécution du programme. L'interpréteur (interpreter) Python traduit le code source en code machine et exécute le programme résultant. Si et quand une erreur survient, l'interpréteur interrompt la traduction du code source et affiche un message d'erreur.
La plupart des environnements de développement incluent un shell Python pour expérimenter du code de manière interactive. Un shell, également appelé console ou terminal, est un programme qui permet d'interagir directement avec un interpréteur. L'interpréteur exécute généralement un programme entier en une seule fois. Mais l'interpréteur peut également exécuter le code ligne par ligne au sein d'un shell Python.
Concepts en pratique
Utilisation d'un shell Python
Les touches fléchées
Un shell Python est pratique pour explorer et déboguer du code. L'utilisateur peut essayer quelque chose, observer les résultats, puis essayer autre chose. Lorsqu'une erreur se produit, un message d'erreur s'affiche, mais le programme continue de s'exécuter. De cette manière, l'utilisateur peut modifier la ligne précédente et corriger l'erreur de façon interactive.
L'acronyme REPL (prononcé « rep-eul ») est souvent employé pour désigner un shell. REPL signifie « read-eval-print loop » (boucle lecture-évaluation-impression), ce qui décrit la nature répétitive d'un shell :
- Read : lire/saisir du code
- Evaluate : évaluer/exécuter le code
- Print : afficher les résultats
- Loop : boucler et revenir à l'étape 1
La plupart des shells conservent un historique de chaque ligne de code saisie par l'utilisateur. Appuyer sur la flèche vers le haut ou vers le bas du clavier permet de faire défiler cet historique. La flèche vers le haut affiche la ligne précédente ; la flèche vers le bas affiche la ligne suivante. Ainsi, l'utilisateur peut réexécuter une ligne sans avoir à la saisir à nouveau.
Concepts en pratique
Utilisation des touches fléchées
À vous d'essayer
Exploration du shell
Exécuter du code de manière interactive est un excellent moyen d'apprendre le fonctionnement de Python. Ouvrez un shell Python sur votre ordinateur, ou utilisez celui disponible sur python.org/shell. Saisissez ensuite n'importe quel code Python, une ligne à la fois, pour observer le résultat. Voici quelques expressions à essayer :
x = 53*x - 53 * (x-5)xtype(1)type('1')str(1)int('1')abs(-5)abs(5)len("Yo")len("HoHo")round(9.49)round(9.50)
Remarque : ces fonctions (type, str, int, len et round) seront étudiées plus en détail plus loin dans le chapitre. Vous pouvez en apprendre davantage sur les fonctions intégrées dans la documentation de Python.
À vous d'essayer
Correction d'erreurs
Ouvrez un shell Python sur votre ordinateur, ou utilisez celui disponible sur python.org/shell. Exécutez les deux instructions suivantes dans le shell :
x = 123y = 456
Il est courant de commettre des erreurs lors de la frappe dans un shell. Les lignes suivantes comportent des fautes de frappe et d'autres erreurs. Pour chaque ligne : (1) exécutez la ligne dans un shell pour observer le résultat, (2) appuyez sur la flèche vers le haut pour répéter la ligne, et (3) modifiez la ligne pour obtenir le résultat correct.
print("Easy as", X)print("y divided by 2 is", y / 0)name = intput("What is your name? ")print(name, "is", int(name), "letters long.")print("That's all folks!)
La sortie attendue, après correction des erreurs de frappe, devrait ressembler à :
Easy as 123y divided by 2 is 228.0(no error/output)Stacie is 6 letters long.That's all folks!