4.3 Das erste Programm 

Als Einstieg in die Programmierung mit Python erstellen wir hier ein kleines Beispielprogramm, das Spiel »Zahlenraten«. Die Spielidee ist folgende: Der Spieler soll eine im Programm festgelegte Zahl erraten. Dazu stehen ihm beliebig viele Versuche zur Verfügung. Nach jedem Versuch informiert ihn das Programm darüber, ob die geratene Zahl zu groß, zu klein oder genau richtig gewesen ist. Sobald der Spieler die Zahl erraten hat, gibt das Programm die Anzahl der Versuche aus und wird beendet. Aus Sicht des Spielers soll das Ganze folgendermaßen aussehen:
Raten Sie: 42
Zu klein
Raten Sie: 10000
Zu groß
Raten Sie: 999
Zu klein
Raten Sie: 1337
Super, Sie haben es in 4 Versuchen geschafft!
Kommen wir vom Ablaufprotokoll zur konkreten Implementierung in Python:
Abbildung 4.4 Zahlenraten, ein einfaches Beispiel
Die hervorgehobenen Bereiche des Programms werden im Folgenden noch einmal ausführlich diskutiert.
Initialisierung
Bei der Initialisierung werden die für das Spiel benötigten Variablen angelegt. Python unterscheidet zwischen verschiedenen Datentypen, wie etwa Zeichenketten, Ganz- oder Fließkommazahlen. Der Typ einer Variablen wird zur Laufzeit des Programms anhand des ihr zugewiesenen Wertes bestimmt. Es ist also nicht nötig, einen Datentyp explizit anzugeben. Eine Variable kann im Laufe des Programms ihren Typ ändern.
In unserem Spiel werden Variablen für die gesuchte Zahl (geheimnis), die Benutzereingabe (versuch) und den Versuchszähler (zaehler) angelegt und mit Anfangswerten versehen. Dadurch, dass versuch und geheimnis zu Beginn des Programms verschiedene Werte haben, ist sichergestellt, dass die Schleife anläuft.
Schleifenkopf
Eine while-Schleife wird eingeleitet. Eine while-Schleife läuft so lange, wie die im Schleifenkopf genannte Bedingung (versuch != geheimnis) erfüllt ist, also in diesem Fall, bis die Variablen versuch und geheimnis den gleichen Wert haben. Aus Benutzersicht bedeutet dies: Die Schleife läuft so lange, bis die Benutzereingabe mit der zu erratenden Zahl übereinstimmt.
Den zum Schleifenkopf gehörigen Schleifenkörper erkennt man daran, dass die nachfolgenden Zeilen um eine Stufe weiter eingerückt wurden. Sobald die Einrückung wieder um einen Schritt nach links geht, endet der Schleifenkörper.
Schleifenkörper
In der ersten Zeile des Schleifenkörpers wird eine vom Spieler eingegebene Zahl eingelesen und in der Variablen versuch gespeichert. Dabei wird mithilfe von input(" Raten Sie: ") die Eingabe des Benutzers eingelesen und mit int in eine ganze Zahl konvertiert (von engl. integer, »ganze Zahl«). Diese Konvertierung ist wichtig, da Benutzereingaben generell als String eingelesen werden. In unserem Fall möchten wir die Eingabe jedoch als Zahl weiterverwenden. Der String "Raten Sie: " wird vor der Eingabe ausgegeben und dient dazu, den Benutzer zur Eingabe der Zahl aufzufordern.
Nach dem Einlesen wird einzeln geprüft, ob die eingegebene Zahl versuch größer oder kleiner als die gesuchte Zahl geheimnis ist, und mittels print eine entsprechende Meldung ausgegeben. Schließlich wird der Versuchszähler zaehler um eins erhöht.
Nach dem Hochzählen des Versuchszählers endet der Schleifenkörper, da die nächste Zeile nicht mehr unter dem Schleifenkopf eingerückt ist.
Bildschirmausgabe
Die letzte Programmzeile gehört nicht mehr zum Schleifenkörper. Das bedeutet, dass sie erst ausgeführt wird, wenn die Schleife vollständig durchlaufen, das Spiel also gewonnen ist. In diesem Fall werden eine Erfolgsmeldung sowie die Anzahl der benötigten Versuche ausgegeben. Das Spiel ist beendet.
Erstellen Sie jetzt Ihr erstes Python-Programm, indem Sie den Programm-Code in eine Datei namens spiel.py schreiben und ausführen. Ändern Sie den Startwert von geheimnis, und spielen Sie das Spiel.