3.1Die Read-Eval-Print-Loop (REPL)
Im Kapitel zur Installation haben Sie einmal python3 --version
im Terminal
ausgeführt um sicherzustellen, dass Sie ein aktuelles und funktionierendes
Python installiert haben. Nun machen Sie die ersten Schritte mit Python Code.
Starten der Python REPL¶
Führen Sie das Programm python3
im Terminal aus, so startet es in die REPL.
$ python3
Python 3.13.7 (main, Aug 14 2025, 11:12:11) [Clang 17.0.0 (clang-1700.0.13.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Um die REPL zu verlassen, tippen Sie quit()
oder nutzen Sie (in
Unix-basierten Betriebssysteme) die Tastekombination Strg+D.
Ihr erstes Python¶
Die REPL verhält sich ähnlich zum Terminal, nur dass nicht Befehle nach
(typischerweise) einem "$
" eingegeben werden, sondern dass Python-Code nach
einem ">>>
" eingegeben wird.
Nachfolgend finden Sie ein paar Beispiele. Probieren Sie diese selbst aus und ändern Sie sie dann ab.
>>> 2+2
4
>>> "Hallo, Welt!"
'Hallo, Welt!"
>>> print("Hallo, Welt!")
Hallo, Welt!
Ist der Python-Code noch nicht vollständig, so verändert sich der Prompt zu ...
.
>>> print(
...
... "Hallo"
... )
Hallo
Die Struktur einer REPL¶
Eine REPL (siehe Figure 1) ist ein Programm, welches:
- Read: Einen Befehl oder hier ein Stück Python-Code einliest.
- Eval: Dann den Code ausführt.
- Print: Das Ergebnis des ausgeführten Codes zurück gibt.
- Loop: Und das solange wiederholt, bis es beendet wird (bei Python via
quit()
).
Figure 1:Zustandsdiagramm der Bestandteile einer REPL
Betrachten wir den Ablauf folgendes Szenarios:
Sie starten den Python-Interpreter mit
$ python3
Python startet, gibt die Versionsinformationen aus und zeigt Ihnen mit dem Prompt
>>>
an, dass es zum Einlesen eines Python-Ausdrucks bereit ist.Die REPL ist nun im Zustand Read.
Sie können nun einen Python-Ausdruck eingeben. Dieser kann
print("Hallo")
sein oder aber auch>>> print( ... "Hallo" ... )
Während Sie den Ausdruck eingeben bleibt die REPL im Status Read. Haben Sie einen vollständigen Ausdruck eingegeben (Wann ein Ausdruck “vollständig” ist lernen Sie später.) und drücken Sie dann die Eingabetaste, so wechselt die REPL in den Zustand Eval.
Bei der Evaluation des Python-Ausdrucks versucht der Interpreter, den Code auszuführen. Ist er korrekt (und bezieht sich nur auf Namen(/Variablen), die bereits definiert wurden), so wird der Code ausgeführt. Nachdem der Code ausgeführt wurde wechselt die REPL in den Zustand Print und es wird das Ergebnis des gerade ausgeführten Python-Codes gedruckt.
Dann wird in den Zustand Loop gewechselt und überprüft, ob eine Abbruchbedingung erreicht wurde. Ist dies nicht der Fall – soll also wieder von Anfang begonnen werden so wechselt die REPL zurück in den Zustand Read und der Ablauf springt damit zu Schritt 2. Soll die Schleife nicht fortgesetzt werden, so geht die REPL über in den Zustand Stop und der Python-Interpreter wird beendet.
Lernstandskontrolle¶
Nachvollziehen der Zustände der REPL
Nachvollziehen Sie die nachfolgende REPL-Interaktion. Was sind Ausgaben per
print
und was sind Ausgaben durch den Zustand Print der REPL?
>>> hallo = "Hallo Python-Lernende" # 1
>>> hallo # 2
'Hallo Python-Lernende' # 3
>>> print(hallo) # 4
Hallo Python-Lernende # 5
>>> print("Hallo Python-Lernende") # 6
Hallo Python-Lernende # 7
>>>
✅ Lösung
zu 1: Hier wird eine Variable mit dem Namen hallo
erzeugt in der das
String-Literal "Hallo Python-Lernende"
gespeichert wird. Dieser Ausdruck hat
kein Ergebnis, weshalb nach der Zeile sofort der Prompt für die nächste Eingabe
angezeigt wird.
zu 2: Hier besteht der Python-Ausdruck nur aus der Variablen mit dem
Namen hallo
. Eine Variable hat ihren Wert als Ergebnis, weshalb im Zustand
Print der REPL das String-Literat 'Hallo Python-Lernende'
ausgegeben wird
(siehe 3).
Beachten Sie, dass in Python Strings entweder mit '
oder mit "
umschlossen
werden können. Sie sind gleichwertig und die Verwendung ist nur relevant, wenn
der String selbst ein '
oder ein "
enthält. Der String "Wie geht's?"
müssten mit einfachen Anführungszeichen mit Hilfe eines sog. Escape-Zeichens
geschrieben werden: 'Wie geht\'s?'
. Anders herum wäre es bei diesem String:
"Sie sagte: \"Hallo.\""
bzw. 'Sie sagte: "Hallo."'
.
zu 4: Hier wird die Funktion print()
genutzt um den Wert der Variablen
hallo
zu drucken. Dies geschieht im Zustand Eval und die Ausgabe dazu ist
in 5 zu sehen. Die Funktion print()
hat selbst kein Ergebnis, weshalb
nichts zusätzliches durch den Zustand Print ausgegeben wird.
zu 6: In diesem Schritt wird wie beim ersten Beispiel die Funktion
print()
mit einem String-Literal genutzt. Die Ausgabe in 7 ist von der
Version, die die Variable hallo
nutzt nicht zu unterscheiden.
Die Zahlen am Ende eines Ausdrucks (bspw. # 1
) sind ein Kommentar, um in der
Musterlösung einzelne Zeilen referenzieren zu können.
In Python beginnen Kommentare mit einem #
und es wir alles bis zum Zeilenende
vom Interpreter ignoriert. Kommentare sind für Menschen, die den Code lesen
gedacht und nicht für den Computer.
Nutzung der REPL