8. Composants de plus haut niveau
*********************************

L’entrée de l’interpréteur Python peut provenir d’un certain nombre de
sources : d’un script passé en entrée standard ou en argument de
programme, tapée de manière interactive, à partir d’un fichier source
de module, etc. Ce chapitre donne la syntaxe utilisée dans ces
différents cas.


8.1. Programmes Python complets
===============================

While a language specification need not prescribe how the language
interpreter is invoked, it is useful to have a notion of a complete
Python program.  A complete Python program is executed in a minimally
initialized environment: all built-in and standard modules are
available, but none have been initialized, except for "sys" (various
system services), "__builtin__" (built-in functions, exceptions and
"None") and "__main__".  The latter is used to provide the local and
global namespace for execution of the complete program.

La syntaxe d’un programme Python complet est celle d’un fichier
d’entrée, dont la description est donnée dans la section suivante.

L’interpréteur peut également être invoqué en mode interactif ; dans
ce cas, il ne lit et n’exécute pas un programme complet mais lit et
exécute une seule instruction (éventuellement composée) à la fois.
L’environnement initial est identique à celui d’un programme complet ;
chaque instruction est exécutée dans l’espace de noms de "__main__".

A complete program can be passed to the interpreter in three forms:
with the "-c" *string* command line option, as a file passed as the
first command line argument, or as standard input. If the file or
standard input is a tty device, the interpreter enters interactive
mode; otherwise, it executes the file as a complete program.


8.2. Fichier d’entrée
=====================

Toutes les entrées lues à partir de fichiers non interactifs sont de
la même forme :

   file_input ::= (NEWLINE | statement)*

Cette syntaxe est utilisée dans les situations suivantes :

* lors de l’analyse d’un programme Python complet (à partir d’un
  fichier ou d’une chaîne de caractères) ;

* lors de l’analyse d’un module ;

* when parsing a string passed to the "exec" statement;


8.3. Entrée interactive
=======================

L’entrée en mode interactif est analysée à l’aide de la grammaire
suivante :

   interactive_input ::= [stmt_list] NEWLINE | compound_stmt NEWLINE

Notez qu’une instruction composée (de niveau supérieur) doit être
suivie d’une ligne blanche en mode interactif ; c’est nécessaire pour
aider l’analyseur à détecter la fin de l’entrée.


8.4. Entrée d’expression
========================

There are two forms of expression input.  Both ignore leading
whitespace. The string argument to "eval()" must have the following
form:

   eval_input ::= expression_list NEWLINE*

The input line read by "input()" must have the following form:

   input_input ::= expression_list NEWLINE

Note: to read “raw” input line without interpretation, you can use the
built-in function "raw_input()" or the "readline()" method of file
objects.
