2. Utiliser l’interpréteur Python

2.1. Invoquer l’interpréteur

The Python interpreter is usually installed as /usr/local/bin/python3.5 on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:

python3.5

dans le shell. [1] Le choix du répertoire où se trouve l’interpréteur étant uneoption 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.)

On Windows machines, the Python installation is usually placed in C:\Python35, though you can change this when you’re running the installer. To add this directory to your path, you can type the following command into the command prompt in a DOS box:

set path=%path%;C:\python35

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().

The interpreter’s line-editing features include interactive editing, history substitution and code completion on systems that support readline. Perhaps the quickest check to see whether command line editing is supported is typing Control-P to the first Python prompt you get. If it beeps, you have command line editing; see Appendix Édition interactive des entrées et substitution d’historique for an introduction to the keys. If nothing appears to happen, or if ^P is echoed, command line editing isn’t available; you’ll only be able to use backspace to remove characters from the current line.

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

When commands are read from a tty, the interpreter is said to be in interactive mode. In this mode it prompts for the next command with the primary prompt, usually three greater-than signs (>>>); for continuation lines it prompts with the secondary prompt, by default three dots (...). The interpreter prints a welcome message stating its version number and a copyright notice before printing the first prompt:

$ python3.5
Python 3.5 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
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 = True
>>> 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

Par défaut Python considère que ses fichiers source sont encodés en UTF-8. Dans cet encodage, les caractères de la plupart des langues peuvent être utilisés ensemble dans les chaînes de caractères, identifiants, et commentaires, bien que la bibliothèque standard n’utilise que des caractères ASCII dans ses identifiants, une bonne habitude que tout code portable devrait suivre. Pour afficher correctement tous ces caractères, votre éditeur doit reconnaître que le fichier est en UTF-8, et utiliser une fonte de caractère qui comprend tous les caractères utilisés dans le fichier.

It is also possible to specify a different encoding for source files. In order to do this, put one more special comment line right after the #! line to define the source file encoding:

# -*- coding: encoding -*-

With that declaration, everything in the source file will be treated as having the encoding encoding instead of UTF-8. The list of possible encodings can be found in the Python Library Reference, in the section on codecs.

For example, if your editor of choice does not support UTF-8 encoded files and insists on using some other encoding, say Windows-1252, you can write:

# -*- coding: cp-1252 -*-

and still use all characters in the Windows-1252 character set in the source files. The special encoding comment must be in the first or second line within the file.

Notes

[1]Sur Unix, l’interpréteur Python 3.x n’est pas, par défaut, installé sous le nom de python pour ne pas entrer en conflit avec une éventuelle installation de Python 2.x.