| 
				
				
				
				 | 
			
			 | 
			@@ -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. |