2. Mode d’emploi de l’interpréteur Python
*****************************************


2.1. Lancement de l’interpréteur
================================

L’interpréteur python est habituellement installé
"/usr/local/bin/python" sur les machines où il est disponible. En
mettant "/usr/local/bin" dans les chemins de recherche de votre shell
Unix, vous permettez de lancer l’interpréteur Python en tapant la
commande :

   python

dans le shell. Le choix du répertoire où se trouve l’interpréteur
étant une option d’installation, d’autres chemins sont possibles;
voyez avec votre guru Python local ou votre administrateur système.
(Par exemple, "/usr/local/python" est une localisation courante.)

Sur les machines Windows, l’installation de Python se situe
généralement dans "C:\Python27", bien que vous puissiez changer cela
lorsque vous lancer l’installateur. Pour ajouter ce chemin dans vos
chemins de recherche, vous pouvez taper la commande suivante dans
votre émulateur de terminal DOS

   set path=%path%;C:\python27

Tapez un caractère de fin de fichier ("Ctrl-D" sous Unix, "Ctrl-Z"
sous Windows) dans une invite de commande primaire provoque la
fermeture de l’interpréteur avec un code de sortie nul. Si cela ne
fonctionne pas, vous pouvez fermer l’interpréteur en tapant la
commande "quit()".

Les fonctionnalités d’édition de ligne en mode interactif ne sont pas
très sophistiquées.  Sur Unix, celui qui à installé Python peut avoir
activé le support de *GNU readline*, qui ajoute quelques
fonctionnalités d’édition, et la gestion de l’historique.  Le moyen
probablement le plus rapide pour savoir si l’édition est gérée est de
taper "Control-P" au premier prompt Python.  Si ça *beep* vous avez
l’édition. Voir l’appendice Édition interactive des entrées et
substitution d’historique à propos des raccourcis clavier.  Si rien
n’apparaît ou si "^P" est affiché, l’édition de la ligne n’est pas
disponible, vous ne pourrez qu’utiliser que la touche retour arrière
pour supprimer des caractères de la ligne actuelle.

L’interpréteur fonctionne de façon similaire au shell Unix : lorsqu’il
est appelé avec l’entrée standard connectée à un périphérique tty, il
lit et exécute les commandes de façon interactive ; lorsqu’il est
appelé avec un nom de fichier en argument ou avec un fichier comme
entrée standard, il lit et exécute un *script* depuis ce fichier.

Une autre façon de lancer l’interpréteur est "python -c commande [arg]
...". Cela exécute les instructions de *commande* de façon analogue à
l’option "-c" du shell. Parce que les instructions Python contiennent
souvent des espaces et d’autres caractères spéciaux pour le shell, il
est généralement conseillé de mettre *commande* entre guillemets
simples.

Certains modules Python sont aussi utiles en tant que scripts. Ils
peuvent être appelés avec "python -m module [arg] ..." qui exécute le
fichier source de *module* comme si vous aviez tapé son nom complet
dans la ligne de commande.

Quand un fichier de script est utilisé, il est parfois utile de
pouvoir lancer le script puis d’entrer dans le mode interactif après
coup. Cela est possible en passant "-i" avant le script.

Tous les paramètres utilisables en ligne de commande sont documentés
dans Ligne de commande et environnement.


2.1.1. Passage d’arguments
--------------------------

Lorsqu’ils sont connus de l’interpréteur, le nom du script et les
arguments additionnels sont représentés sous forme d’une liste
assignée à la variable "argv" du module "sys". Vous pouvez y accéder
en exécutant "import sys". La liste contient au minimum un élément ;
quand aucun script ni aucun argument n’est donné, "sys.argv[0]" est
une chaine vide. Quand "'-'" (qui représente l’entrée standard) est
passé comme nom de script, "sys.argv[0]" contient "'-'". Quand "-c"
*commande* est utilisé, "sys.argv[0]" contient "'-c'". Enfin, quand
"-m" *module* est utilisé, le nom complet du module est assigné à
"sys.argv[0]". Les options trouvées après "-c" *commande* ou "-m"
*module* ne sont pas lues comme options de l’interpréteur Python mais
laissées dans "sys.argv" pour être utilisées par le module ou la
commande.


2.1.2. Mode interactif
----------------------

Lorsque des commandes sont lues depuis un tty, l’interpréteur est dit
être en *mode interactif*. Dans ce mode, il demande la commande
suivante avec le *prompt primaire*, en général trois signes plus-
grand-que (">>>") ; pour les lignes de continuation, il affiche le
*prompt secondaire*, par défaut trois points ("..."). L’interpréteur
affiche un message de bienvenue indiquant son numéro de version et une
notice de copyright avant d’afficher le premier prompt :

   python
   Python 2.7 (#1, Feb 28 2010, 00:02:06)
   Type "help", "copyright", "credits" or "license" for more information.
   >>>

Les lignes de continuation sont nécessaires pour entrer une
construction multi-lignes. Par exemple, regardez cette instruction
"if" :

   >>> the_world_is_flat = 1
   >>> if the_world_is_flat:
   ...     print "Be careful not to fall off!"
   ...
   Be careful not to fall off!

Pour plus d’informations sur le mode interactif, voir Mode interactif.


2.2. L’interpréteur et son environnement
========================================


2.2.1. Encodage du code source
------------------------------

By default, Python source files are treated as encoded in ASCII. To
declare an encoding other than the default one, a special comment line
should be added as the *first* line of the file.  The syntax is as
follows:

   # -*- coding: encoding -*-

where *encoding* is one of the valid "codecs" supported by Python.

For example, to declare that Windows-1252 encoding is to be used, the
first line of your source code file should be:

   # -*- coding: cp1252 -*-

One exception to the *first line* rule is when the source code starts
with a UNIX « shebang » line.  In this case, the encoding declaration
should be added as the second line of the file.  For example:

   #!/usr/bin/env python
   # -*- coding: cp1252 -*-
