4 Der Weg zum ersten Programm 

Nachdem wir im interaktiven Modus spielerisch einige Grundelemente der Sprache Python behandelt haben, möchten wir dieses Wissen jetzt auf ein tatsächliches Programm übertragen. Im Gegensatz zum interaktiven Modus, der eine wechselseitige Interaktion zwischen Programmierer und Interpreter ermöglicht, wird der Quellcode eines Programms in eine Datei geschrieben. Diese wird als Ganzes vom Interpreter eingelesen und ausgeführt.
In den folgenden Abschnitten lernen Sie die Grundstrukturen eines Python-Programms kennen und werden Ihr erstes einfaches Beispielprogramm schreiben.
4.1 Tippen, kompilieren, testen 

In diesem Abschnitt werden die Arbeitsabläufe besprochen, die nötig sind, um ein Python-Programm zu erstellen und auszuführen. Ganz allgemein sollten Sie sich darauf einstellen, dass wir in einem Großteil des Buchs ausschließlich Konsolenanwendungen schreiben werden. Eine Konsolenanwendung hat eine rein textbasierte Schnittstelle zum Benutzer und läuft in der Konsole (auch Shell) des jeweiligen Betriebssystems ab. Für die meisten Beispiele und auch für viele reale Anwendungsfälle reicht eine solche textbasierte Schnittstelle aus.[ 6 ](Selbstverständlich ermöglicht Python auch die Programmierung grafischer Benutzeroberflächen. Dies wird in Kapitel 39 behandelt. )
Grundsätzlich besteht ein Python-Programm aus einer oder mehreren Programmdateien. Diese Programmdateien haben die Dateiendung .py und enthalten den Python-Quelltext. Dabei handelt es sich um nichts anderes als um Textdateien. Programmdateien können also mit einem normalen Texteditor bearbeitet werden.
Nachdem eine Programmdatei geschrieben wurde, besteht der nächste Schritt darin, sie auszuführen. Wenn Sie IDLE verwenden, kann die Programmdatei bequem über den Menüpunkt Run • Run Module ausgeführt werden. Sollten Sie einen Editor verwenden, der keine vergleichbare Funktion unterstützt, müssen Sie in einer Kommandozeile in das Verzeichnis der Programmdatei wechseln und – abhängig von Ihrem Betriebssystem – verschiedene Kommandos ausführen.
Windows
Unter Windows reicht es, den Namen der Programmdatei einzugeben und mit (¢) zu bestätigen. Im folgenden Beispiel, zu sehen in Abbildung 4.1, wird die Programmdatei programm.py im Ordner C:\Ordner ausgeführt. Dazu müssen Sie ein Konsolenfenster öffnen.[ 7 ](In älteren Windows-Versionen finden Sie die Konsole unter Start • Programme • Zubehör • Eingabeaufforderung. In neueren Windows-Versionen starten Sie die PowerShell.)
Abbildung 4.1 Ausführen eines Python-Programms unter Windows
Bei »Dies schreibt Ihnen Ihr Python-Programm« handelt es sich um eine Ausgabe des Python-Programms in der Datei programm.py, die beweist, dass das Python-Programm tatsächlich ausgeführt wurde.
[»] Hinweis
Unter Windows ist es auch möglich, ein Python-Programm durch einen Doppelklick auf die jeweilige Programmdatei auszuführen. Das hat aber den Nachteil, dass sich das Konsolenfenster sofort nach Beenden des Programms schließt und die Ausgaben des Programms somit nicht erkennbar sind.
Linux und macOS
Unter Unix-ähnlichen Betriebssystemen wie Linux oder macOS wechseln Sie ebenfalls in das Verzeichnis, in dem die Programmdatei liegt, und starten dann den Python-Interpreter mit dem Kommando python, gefolgt von dem Namen der auszuführenden Programmdatei. Im folgenden Beispiel wird die Programmdatei programm.py unter Linux ausgeführt, die sich im Verzeichnis /home/user/ordner befindet:
user@HOST ~ $ cd ordner
user@HOST ~/ordner $ python programm.py
Dies schreibt Ihnen Ihr Python-Programm
Bitte beachten Sie den Hinweis in Abschnitt 2.2.2, der besagt, dass das Kommando, mit dem Sie Python 3.6 starten, je nach Distribution von dem hier demonstrierten python abweichen kann.
4.1.1 Shebang 

Unter einem Unix-ähnlichen Betriebssystem wie beispielsweise Linux können Python-Programmdateien mithilfe eines Shebangs, auch Magic Line genannt, direkt ausführbar gemacht werden. Dazu muss die erste Zeile der Programmdatei in der Regel folgendermaßen lauten:
#!/usr/bin/python
In diesem Fall wird das Betriebssystem dazu angehalten, diese Programmdatei immer mit dem Python-Interpreter auszuführen. Unter anderen Betriebssystemen, beispielsweise Windows, wird die Shebang-Zeile ignoriert.
Beachten Sie, dass der Python-Interpreter auf Ihrem System in einem anderen Verzeichnis als dem hier angegebenen installiert sein könnte. Allgemein ist daher folgende Shebang-Zeile besser, da sie vom tatsächlichen Installationsort von Python unabhängig ist:
#!/usr/bin/env python
Beachten Sie außerdem, dass das Executable-Flag der Programmdatei gesetzt werden muss, bevor die Datei tatsächlich ausführbar ist. Das geschieht mit dem Befehl:
chmod +x dateiname
Die in diesem Buch gezeigten Beispiele enthalten aus Gründen der Übersichtlichkeit keine Shebang-Zeile. Das bedeutet aber ausdrücklich nicht, dass vom Einsatz einer Shebang-Zeile abzuraten wäre.
4.1.2 Interne Abläufe 

Bislang haben Sie eine ungefähre Vorstellung davon, was Python ausmacht und wo die Stärken dieser Programmiersprache liegen. Außerdem haben wir Ihnen das Grundwissen zum Erstellen und Ausführen einer Python-Programmdatei vermittelt. Doch in den vorangegangenen Abschnitten sind Begriffe wie »Compiler« oder »Interpreter« gefallen, ohne erklärt worden zu sein. In diesem Abschnitt möchten wir uns daher den internen Vorgängen widmen, die beim Ausführen einer Python-Programmdatei ablaufen. Abbildung 4.2 veranschaulicht, was beim Ausführen einer Programmdatei namens programm.py geschieht.
Abbildung 4.2 Kompilieren und Interpretieren einer Programmdatei
Wenn die Programmdatei programm.py, wie zu Beginn des Kapitels beschrieben, ausgeführt wird, passiert sie zunächst den Compiler. Als Compiler wird ein Programm bezeichnet, das von einer formalen Sprache in eine andere übersetzt. Im Falle von Python übersetzt der Compiler von der Sprache Python in den Byte-Code. Dabei steht es dem Compiler frei, den generierten Byte-Code im Arbeitsspeicher zu behalten oder als programm.pyc auf der Festplatte zu speichern.
Beachten Sie, dass der vom Compiler generierte Byte-Code nicht direkt auf dem Prozessor ausgeführt werden kann, im Gegensatz etwa zu C- oder C++-Kompilaten. Zur Ausführung des Byte-Codes wird eine weitere Abstraktionsschicht, der Interpreter, benötigt. Der Interpreter, häufig auch virtuelle Maschine (engl. virtual machine) genannt, liest den vom Compiler erzeugten Byte-Code ein und führt ihn aus.
Dieses Prinzip einer interpretierten Programmiersprache hat verschiedene Vorteile. So kann derselbe Python-Code beispielsweise unmodifiziert auf allen Plattformen ausgeführt werden, für die ein Python-Interpreter existiert. Allerdings laufen Programme interpretierter Programmiersprachen aufgrund des zwischengeschalteten Interpreters in der Regel auch langsamer als ein vergleichbares C-Programm, das direkt auf dem Prozessor ausgeführt wird.[ 8 ](Zumindest dann, wenn der Interpreter keine Laufzeitoptimierung über eine Just-in-Time-Kompilierung durchführt. Mit PyPy lernen Sie einen solchen Python-Interpreter in Abschnitt 35.6.9, »Alternative Interpreter: PyPy«, kennen. )