2. Utiliser l’interpréteur Python

2.1. Invoquer 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

Taper un caractère de fin de fichier (Ctrl-D sous Unix, Ctrl-Z sous Windows) suive à une invite de commande primaire provoque la fermeture de l’interpréteur avec un statut d’erreur 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 opère 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é 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 arguments ne sont donnés, 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ée 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 UTF-8. In that encoding, characters of most languages in the world can be used simultaneously in string literals, identifiers and comments — although the standard library only uses ASCII characters for identifiers, a convention that any portable code should follow. To display all these characters properly, your editor must recognize that the file is UTF-8, and it must use a font that supports all the characters in the file.

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: cp-1252 -*-

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: cp-1252 -*-