2. Verwendung des Python-Interpreters
*************************************


2.1. Aufrufen des Interpreters
==============================

The Python interpreter is usually installed as
"/usr/local/bin/python3.12" 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.12

in der Shell starten. [1] Da der Ort, an dem der Interpreter liegt,
eine Installationsoption ist, sind auch andere Pfade möglich; fragen
Sie Ihren lokalen Python-Guru oder Systemadministrator. (Ein beliebter
alternativer Ort ist z. B. "/usr/local/python".)

On Windows machines where you have installed Python from the Microsoft
Store, the "python3.12" command will be available. If you have the
py.exe launcher installed, you can use the "py" command. See Excursus:
Setting environment variables for other ways to launch Python.

Wenn Sie an der primären Eingabeaufforderung das Dateiende-Zeichen
("Control"-"D" unter Unix, "Control"-"Z" unter Windows) eingeben,
beendet sich der Interpreter mit dem Statuscode 0. Falls das nicht
funktioniert, können Sie den Interpreter mit dem Befehl "quit()"
beenden.

The interpreter's line-editing features include interactive editing,
history substitution and code completion on systems that support the
GNU Readline library. 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 Interaktive Eingabebearbeitung und Historienersetzung 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.

Der Interpreter funktioniert ähnlich wie die Unix-Shell: Ist die
Standardeingabe mit einem TTY-Gerät (Terminal) verbunden, liest und
führt er Befehle interaktiv aus. Wird er hingegen mit einem Dateinamen
als Argument oder einer Datei als Standardeingabe aufgerufen, liest
und führt er ein *Skript* aus dieser Datei aus.

Eine zweite Möglichkeit, den Interpreter zu starten, ist "python -c
Befehl [arg] ...". Dies führt die Anweisung(en) in *Befehl* aus,
analog zur "-c"-Option der Shell. Da Python-Anweisungen häufig
Leerzeichen oder andere Sonderzeichen der Shell enthalten, empfiehlt
es sich in der Regel, *Befehl* vollständig in Anführungszeichen zu
setzen.

Manche Python-Module sind auch als Skripte nützlich. Diese können über
"python -m Modul [arg] ..." aufgerufen werden, was die Quelldatei für
*Modul* so ausführt, als hättest du ihren vollständigen Namen auf der
Kommandozeile angegeben.

Wenn eine Skriptdatei verwendet wird, ist es manchmal nützlich, das
Skript auszuführen und danach in den interaktiven Modus zu wechseln.
Dazu kannst du "-i" vor dem Skript übergeben.

Alle Kommandozeilen-Optionen sind in Command line and environment
beschrieben.


2.1.1. Argumentübergabe
-----------------------

Sind dem Interpreter der Skriptname und die nachfolgenden Argumente
bekannt, werden sie in eine Liste von Zeichenketten umgewandelt und
der Variablen "argv" im Modul "sys" zugewiesen. Du kannst auf diese
Liste zugreifen, indem du "import sys" ausführst. Die Länge der Liste
beträgt mindestens eins. Werden weder ein Skript noch Argumente
angegeben, ist "sys.argv[0]" eine leere Zeichenkette. Wird der
Skriptname als "'-'" angegeben (was Standardeingabe bedeutet), wird
"sys.argv[0]" auf "'-'" gesetzt. Wird "-c" *Befehl* verwendet, wird
"sys.argv[0]" auf "'-c'" gesetzt. Wird "-m" *Modul* verwendet, wird
"sys.argv[0]" auf den vollständigen Namen des gefundenen Moduls
gesetzt. Optionen nach "-c" *Befehl* oder "-m" *Modul* werden nicht
von der Optionenverarbeitung des Python-Interpreters verbraucht,
sondern in "sys.argv" belassen, damit der Befehl oder das Modul sie
verarbeiten kann.


2.1.2. Interaktiver Modus
-------------------------

Werden Befehle über ein TTY-Gerät (Terminal) gelesen, befindet sich
der Interpreter im *interaktiven Modus*. In diesem Modus fordert er
mit dem *primären Prompt* zur Eingabe des nächsten Befehls auf,
gewöhnlich drei Größer-als-Zeichen (">>>"). Für Fortsetzungszeilen
fordert er mit dem *sekundären Prompt* auf, standardmäßig drei Punkte
("..."). Der Interpreter gibt eine Begrüßungsmeldung mit seiner
Versionsnummer und einem Urheberrechtshinweis aus, bevor er den ersten
Prompt anzeigt:

   $ python3.12
   Python 3.12 (default, April 4 2022, 09:25:04)
   [GCC 10.2.0] on linux
   Type "help", "copyright", "credits" or "license" for more information.
   >>>

Fortsetzungszeilen sind erforderlich, wenn du eine mehrzeilige
Anweisung eingibst. Sieh dir als Beispiel diese "if"-Anweisung an:

   >>> the_world_is_flat = True
   >>> if the_world_is_flat:
   ...     print("Be careful not to fall off!")
   ...
   Be careful not to fall off!

Weitere Informationen zum interaktiven Modus findest du unter
Interaktiver Modus.


2.2. Der Interpreter und seine Umgebung
=======================================


2.2.1. Quelltext-Codierung
--------------------------

Standardmäßig werden Python-Quelldateien als UTF-8-codiert behandelt.
In dieser Codierung können Zeichen der meisten Sprachen der Welt
gleichzeitig in String-Literalen, Bezeichnern und Kommentaren
verwendet werden. Die Standardbibliothek nutzt allerdings nur ASCII-
Zeichen für Bezeichner, eine Konvention, der jeder übertragbare Code
folgen sollte. Um all diese Zeichen korrekt anzuzeigen, muss dein
Editor erkennen, dass die Datei in UTF-8 vorliegt, und eine Schriftart
verwenden, die alle Zeichen in der Datei unterstützt.

Um eine andere als die Standardcodierung anzugeben, sollte eine
spezielle Kommentarzeile als *erste* Zeile der Datei eingefügt werden.
Die Syntax sieht wie folgt aus:

   # -*- coding: encoding -*-

wobei *encoding* eine der gültigen, von Python unterstützten "codecs"
ist.

Um beispielsweise anzugeben, dass die Windows-1252-Codierung verwendet
wird, sollte die erste Zeile deiner Quelltext-Datei wie folgt
aussehen:

   # -*- coding: cp1252 -*-

Eine Ausnahme von der Regel für die *erste Zeile* gilt, wenn der
Quelltext mit einer UNIX-"Shebang"-Zeile beginnt. In diesem Fall
sollte die Codierungsdeklaration als zweite Zeile der Datei eingefügt
werden. Zum Beispiel:

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

-[ Fußnoten ]-

[1] Unter Unix wird der Python-3.x-Interpreter standardmäßig nicht
    unter dem Namen "python" installiert, damit er nicht mit einer
    gleichzeitig installierten Python-2.x-Datei kollidiert.
