|
|
|
@@ -0,0 +1,91 @@ |
|
|
|
Chapitre 16 - L'interpréteur interactif |
|
|
|
======================================= |
|
|
|
|
|
|
|
Démarrage |
|
|
|
---------- |
|
|
|
|
|
|
|
Jusqu'ici, on a toujours lancé la commande Python avec ``python`` suivi du nom |
|
|
|
d'un fichier source. |
|
|
|
|
|
|
|
Il est égalemnet possible de lancer la commande ``python3`` sans argument. |
|
|
|
|
|
|
|
Dans ce cas, on se retrouve avec une **autre** invite de commandes: |
|
|
|
|
|
|
|
.. code-block:: console |
|
|
|
|
|
|
|
$ python3 |
|
|
|
Python 3.7.1 (default, Oct 22 2018, 10:41:28) |
|
|
|
[GCC 8.2.1 20180831] on linux |
|
|
|
Type "help", "credits" or "license" for more information. |
|
|
|
>>> |
|
|
|
|
|
|
|
Deux invites de commandes |
|
|
|
------------------------- |
|
|
|
|
|
|
|
Notez les trois chevrons: ``>>>``. Cela vous permet de différencier l'invite |
|
|
|
de commandes du système d'exploitation de celle de Python. |
|
|
|
|
|
|
|
* Système d'exploitation -> Python: taper ``python3`` (sans arguments) |
|
|
|
* Python -> Système d'exploitation: taper ``quit()`` |
|
|
|
|
|
|
|
Fonctionnement de l'interpréteur |
|
|
|
-------------------------------- |
|
|
|
|
|
|
|
L'interpréteur fonctionne dans une boucle: |
|
|
|
|
|
|
|
1. Lire le code qui a été tapé (soit une ligne, soit une succession de blocs) |
|
|
|
2. Évaluation du code qui a été entré |
|
|
|
3. Affichage de la valeur le cas échéant |
|
|
|
4. Retour au début |
|
|
|
|
|
|
|
(En anglais, on dit "REPL" - read/eval/print/loop) |
|
|
|
|
|
|
|
Example d'une session interactive:: |
|
|
|
|
|
|
|
>>> a = 42 |
|
|
|
>>> a |
|
|
|
42 |
|
|
|
>>> b = 4 |
|
|
|
>>> a + b |
|
|
|
46 |
|
|
|
|
|
|
|
|
|
|
|
Notez que si la variable est None, l'interpréteur n'affiche rien:: |
|
|
|
|
|
|
|
>>> def ne_fait_rien(): |
|
|
|
pass |
|
|
|
>>> résultat = ne_fait_rien() |
|
|
|
>>> résultat |
|
|
|
>>> résultat is None |
|
|
|
True |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpréteur interactif et imports |
|
|
|
---------------------------------- |
|
|
|
|
|
|
|
Recréons un fichier ``bonjour.py`` contenant:: |
|
|
|
|
|
|
|
# dans bonjour.py |
|
|
|
salutation = "Bonjour," |
|
|
|
def dire_bonjour(nom): |
|
|
|
print(salutation, nom) |
|
|
|
|
|
|
|
|
|
|
|
On peut démarrer un interpréteur interactif dans le répertoire |
|
|
|
contenant le fichier ``bonjour`.py``, et "jouer" avec |
|
|
|
les attributs du module bonjour: |
|
|
|
|
|
|
|
>>> import bonjour |
|
|
|
>>> bonjour.dire_bonjour("Bob") |
|
|
|
Bonjour, Bob |
|
|
|
|
|
|
|
>>> bonjour.salutation = "Hello," |
|
|
|
>>> bonjour.dire_bonjour("Bob") |
|
|
|
Hello, Bob |
|
|
|
|
|
|
|
|
|
|
|
.. warning:: |
|
|
|
|
|
|
|
Si le contenu de bonjour.py change, il faut *relancer* |
|
|
|
l'Interpréteur intéractif et refaire l'import. |