Kurs
Anders als kompilierte Sprachen wie C++ oder Java, die vor der Ausführung in Maschinencode übersetzt werden müssen, wird Python interpretiert und führt Anweisungen direkt aus. Dadurch eignet sich die REPL-Umgebung perfekt zum Experimentieren – egal, ob du Snippets testest, neue Konzepte ausprobierst oder Zeile für Zeile debuggst. Der große Vorteil: Sie ist in jeder Python-Installation enthalten und steht dir jederzeit bereit.
In diesem Tutorial zeige ich dir anhand von Beispielen, wie du die Python-REPL nutzt, welche Features sie bietet und welche alternativen REPLs deinen Workflow verbessern können. Wenn du neu in Python bist, empfehle ich dir unseren Kurs Introduction to Python. Er behandelt Themen wie Datentypen, Listen, grundlegende Funktionen und Packages.
Was ist eine Python-REPL?
REPL steht für Read-Eval-Print Loop und beschreibt vier grundlegende Phasen:
- Read: Die REPL liest deine Eingabe – das kann eine einzelne Codezeile oder auch ein mehrzeiliger Block sein.
- Evaluate: Sie wertet den Code aus, führt Anweisungen oder Ausdrücke aus und berechnet das Ergebnis.
- Print: Das Ergebnis der Auswertung wird in der Konsole ausgegeben. Wenn der Code nichts ausgibt, z. B. eine Zuweisung, erscheint auch keine Ausgabe.
- Loop: Die REPL beginnt von vorne und wartet auf die nächste Eingabe.
Diese Phasen greifen kontinuierlich ineinander und schaffen eine interaktive Umgebung, in der du Code eingibst und sofort das Ergebnis siehst. Die Python-REPL zeigt für neue Anweisungen die primäre Eingabeaufforderung >>> und für Fortsetzungszeilen, etwa in Schleifen oder Funktionsdefinitionen, die sekundäre Eingabeaufforderung .... In den folgenden Abschnitten siehst du anhand von Beispielen, wie diese Prompts funktionieren.
Die Begriffe „Interactive Shell“, „Interpreter-Session“ und „REPL“ werden für diese Umgebung häufig synonym verwendet.
Warum eine Python-REPL nutzen
Eine Python-REPL eignet sich besonders für folgende Aufgaben:
Code-Snippets und Bibliotheksfunktionen schnell testen: Du probierst kleine Code-Stücke direkt aus, ohne eine Skriptdatei anzulegen.
>>> import math
>>> math.sqrt(16)
4.0
Syntax erkunden und Ideen ausprobieren: Denk an die REPL als deinen persönlichen Sandkasten. Du kannst neue Dinge gefahrlos testen – etwa verschiedene Datentypen, Operatoren und Kontrollstrukturen – und genau sehen, wie sie sich verhalten, ohne ein größeres Programm zu gefährden.
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]
Debuggen und Variablen inspizieren: Du kannst Werte und Zustände deiner Variablen Schritt für Schritt prüfen und so Fehler leichter verstehen und beheben.
>>> x = 42
>>> type(x)
<class 'int'>
>>> x / 7
6.0
Als Taschenrechner oder Lernwerkzeug nutzen: Durch die sofortigen Ergebnisse ist sie ideal für Berechnungen oder um Python-Grundlagen zu lernen.
>>> 10 * (5 + 2)
70
So startest und beendest du eine REPL-Session
Um eine Python-REPL zu starten, öffne dein Terminal oder die Eingabeaufforderung. Tippe dann python oder python3 und drücke Enter. Dadurch wird die interaktive Shell gestartet.
Du kannst nach dem Ausführen eines Skripts auch mit dem Flag -i eine interaktive Session starten. Zum Beispiel führt python -i calc_tax.py calc_tax.py aus und bringt dich danach in die REPL – mit den im Speicher verbleibenden Variablen des Skripts.
Um die REPL zu verlassen, kannst du Folgendes verwenden:
-
Tippe
quit()oderexit()und drücke Enter. -
Unter Unix/Linux/macOS drücke Strg+D.
-
Unter Windows drücke Strg+Z und danach Enter.
Code in der REPL ausführen
In der Python-REPL kannst du je nach Komplexität Code auf verschiedene Arten ausführen. Schauen wir uns an, welche Arten von Code du in der REPL nutzen kannst.
Einfache Anweisungen und Ausdrücke
Die REPL wertet einfache Ausdrücke und Anweisungen sofort aus. Du kannst zum Beispiel Rechenoperationen durchführen, Variablen zuweisen und boolesche Ausdrücke prüfen. Das Ergebnis eines Ausdrucks wird automatisch ausgegeben.
>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
TrueWenn eine Anweisung, etwa eine Variablenzuweisung, keine Ausgabe erzeugt, druckt der Interpreter auch nichts. Bei Fehlern liefert die REPL sofortiges Feedback in Form einer Fehlermeldung.
Zusammengesetzte Anweisungen
Die Python-REPL verarbeitet auch mehrzeilige, zusammengesetzte Anweisungen wie if-Statements und for-Schleifen. Nach einer Zeile, die mit einem Doppelpunkt (:) endet, wechselt sie automatisch zur sekundären Eingabeaufforderung (...) und signalisiert damit, dass ein eingerückter Codeblock erwartet wird.
Beachte, dass du die Einrückung manuell setzen musst; die REPL rückt nicht automatisch ein. Um das Ende der zusammengesetzten Anweisung zu markieren, drücke Enter in einer leeren Zeile.
Explizite und implizite Zeilenfortsetzung
Mehrzeilige Anweisungen kannst du in der REPL auch mit Zeilenfortsetzungen schreiben. Eine explizite Zeilenfortsetzung nutzt einen Backslash \ am Zeilenende, um anzuzeigen, dass die Anweisung in der nächsten Zeile weitergeht.
Implizite Zeilenfortsetzungen erfolgen automatisch, wenn der Code in Klammern (), eckigen Klammern [] oder geschweiften Klammern {} steht.
Drucken vs. Auswerten
Das automatische Ausgeben der REPL funktioniert nur für Ausdrücke mit Rückgabewert. Wenn du z. B. bei einer Liste mit temp.append(45) ein Element anhängst, erscheint keine Ausgabe. Um die neue Liste zu sehen, musst du die Listenvariable in der nächsten Zeile explizit auswerten. Bei Funktionen, die None zurückgeben, musst du print() verwenden, um eine Ausgabe zu erhalten.
Nützliche REPL-Features
Die Python-REPL bringt mehrere Funktionen mit, die das Arbeiten und Lernen produktiver machen. Hier sind einige Features, die ich besonders hilfreich finde.
Spezialvariable _
Der Unterstrich (_) ist in der REPL eine spezielle Variable, die das Ergebnis des letzten Ausdrucks speichert. So kannst du Resultate wiederverwenden, ohne sie erneut eingeben zu müssen.
Im folgenden Beispiel speichert _ den Wert 30, der aus dem Ausdruck 6*5 resultiert.
Introspektionstools
Python stellt mehrere eingebaute Funktionen bereit, um Objekte und deine Umgebung interaktiv zu erkunden. Die folgende Tabelle fasst Zweck und Beispiele zusammen.
|
Tool |
Zweck |
Beispiel |
|
|
Gibt eine Liste aller Namen (Attribute und Methoden) im aktuellen lokalen Scope oder eines angegebenen Objekts zurück. |
|
|
|
Startet das integrierte Hilfesystem für ein Objekt, Modul oder eine Funktion und zeigt die Dokumentation (Docstrings) an. |
|
|
|
Gibt das Attribut |
|
|
|
Gibt ein Dictionary der aktuellen lokalen Symboltabelle (Variablen im aktuellen Scope) zurück. |
|
|
|
Gibt ein Dictionary der aktuellen globalen Symboltabelle (global verfügbare Variablen) zurück. |
|
Befehlshistorie und Tab-Vervollständigung
Die REPL beschleunigt das Coden mit diesen History- und Auto-Completion-Features:
- Befehlshistorie: Mit den Pfeiltasten nach oben/unten navigierst du durch früher eingegebene Befehle und kannst Zeilen schnell erneut ausführen, anpassen oder korrigieren.
- Tab-Vervollständigung: Hilft beim Vervollständigen von Variablennamen, Modulnamen und Objektattributen. Wenn du z. B.
importippst und Tab drückst, wird zuimportergänzt; beistr.gefolgt von Tab werden Methoden von Strings gelistet.
Tastenkürzel
Diese Tastenkombinationen machen die Navigation in der REPL effizienter.
|
Kürzel |
Aktion |
|
Strg+C |
Unterbricht den aktuell laufenden Befehl (z. B. eine lange Schleife) und löst |
|
Strg+D (Unix) |
REPL beenden (entspricht |
|
Strg+Z + Enter (Win) |
REPL beenden |
|
Strg+L |
Bildschirm leeren (wie der Befehl |
|
Pfeil hoch / runter |
Befehlshistorie durchblättern |
|
Strg+A |
Cursor an den Zeilenanfang |
|
Strg+E |
Cursor ans Zeilenende |
|
Strg+K |
Vom Cursor bis zum Zeilenende löschen |
|
Strg+U |
Vom Cursor bis zum Zeilenanfang löschen |
Die REPL anpassen
Die Standard-Python-REPL lässt sich an deinen Workflow und deine Vorlieben anpassen.
Startup-Datei
Setze die Umgebungsvariable PYTHONSTARTUP auf den Pfad zu einem Python-Skript, das bei Start der REPL automatisch ausgeführt wird. Dieses Skript kann häufig genutzte Module vorab importieren, Funktionen definieren oder die Prompt-Strings ändern.
Erstelle z. B. eine Datei ~/.pystartup mit folgendem Inhalt:
import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")
# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "
Unter Windows richtest du die Umgebung mit folgendem Befehl ein:
setx PYTHONSTARTUP "C:\path\to\pystartup.py"
Rich Output mit rich
Mit der Bibliothek rich kannst du Ausgaben in der REPL aufhübschen und einfärben. Installiere das Modul rich zuerst mit pip.
pip install rich
Aktiviere rich dann per Import und nutze es in deinen Python-REPL-Sessions. Im folgenden Beispiel werden Wörter in unterschiedlichen Schriftfarben ausgegeben.

Beispielbefehle für die REPL
Wie du siehst, ist die Python-REPL leicht zu bedienen. Probiere die folgenden Befehle aus, um deine Fähigkeiten zu trainieren.
|
Befehl |
Zweck |
Ausgabe/Beschreibung |
|
|
Introspektion: Zeigt alle Methoden und Attribute des eingebauten Typs |
|
|
|
Dokumentation: Zeigt den Docstring der Listenmethode append und erklärt deren Verhalten. |
Eine detaillierte Beschreibung von |
|
|
Modul importieren: Lädt die Standardbibliothek |
Keine Ausgabe (das Modul steht nun zur Verfügung). |
|
|
Berechnung: Liefert den Wert von π. |
|
|
|
Berechnung: Berechnet sin(π/2). |
|
|
|
Schnelltest: Wählt ein zufälliges Element aus einer Liste. |
|
|
|
Fehlerbehandlung/Abbruch: Startet eine Endlosschleife; mit Strg+C unterbrichst du sie. |
|
Einschränkungen der Standard-REPL
Die Standard-Python-REPL ist super für schnelle Aufgaben, wirkt im Vergleich zu einer modernen IDE aber eingeschränkt. Dir werden schnell einige fehlende Features auffallen, darunter:
- Kein Syntax-Highlighting: Alles erscheint als Klartext. So lassen sich Schlüsselwörter, Strings und Kommentare schlechter auf einen Blick unterscheiden.
- Kaum Auto-Indentation: Zwar gibt es das Fortsetzungsprompt (
...), aber Einrückungen für zusammengesetzte Blöcke wie if und for musst du manuell setzen. - Einfache Code-Vervollständigung: Die eingebaute Tab-Vervollständigung ist funktional, bietet aber keine kontextsensitiven Vorschläge, Inline-Dokumentation oder Fuzzy-Matching wie fortgeschrittene Shells.
- Schwache Mehrzeilenbearbeitung: Das Bearbeiten komplexer, mehrzeiliger Codeblöcke ist umständlich.
- Einmal abgeschickte Blöcke lassen sich nicht einfach aus der Historie heraus bearbeiten oder wiederherstellen.
Alternative REPLs
Um die genannten Einschränkungen zu umgehen, gibt es mehrere erweiterte REPLs und Umgebungen auf Basis von Pythons Interaktivmodell, die zusätzliche Features für mehr Produktivität und Lernkomfort bieten. Probiere eine der folgenden Optionen aus und finde heraus, was am besten zu dir passt.
- IDLE: Eine einfache, GUI-basierte Python-Umgebung, die mit Python gebündelt ist. Sie bietet Syntax-Highlighting, einen integrierten Editor und einen Debugger – ideal für Einsteiger.
- IPython: Eine mächtige REPL mit umfangreicher Tab-Vervollständigung, Syntax-Highlighting, Magic Commands (Spezialbefehle beginnend mit %), großer Historie und einfachem Zugriff auf Shell-Befehle. Weit verbreitet in Data Science und Scientific Computing.
- bpython: Eine terminalbasierte REPL mit Inline-Syntax-Highlighting, Auto-Vorschlägen und schnellem Zugriff auf Doku. Leichtgewichtig und deutlich komfortabler als die Standard-REPL.
- ptpython: Für erfahrene Nutzer, eine erweiterte REPL mit echter Mehrzeilenbearbeitung, starkem Syntax-Highlighting und sogar Maussupport – für noch mehr Kontrolle im Terminal.
- Online-REPLs: Browserbasierte Umgebungen wie die interaktive Shell auf Python.org und die Python Morsels REPL eignen sich perfekt für schnelle Tests, das Teilen von Code oder Üben unterwegs.
Fazit
Die Python-REPL bietet eine schnelle, interaktive Umgebung zum Experimentieren mit Code – unschlagbar für Tests, Lernen und das Ausprobieren von Ideen. Wenn du ihre integrierten Features beherrschst, hast du ein starkes Werkzeug für den Programmieralltag. Für komplexere Workflows oder mehr Komfort können erweiterte REPL-Alternativen das interaktive Coden noch einmal spürbar verbessern.
Für ein fundiertes Verständnis von Python empfehlen wir die Lernpfade Python Data Fundamentals und Python Programming Fundamentals. Auch das Python Cheat Sheet für Einsteiger ist praktisch, wenn du z. B. kurz nachschauen willst, wie man in Python eine Liste aufteilt.
FAQs
Wie starte ich die Python-REPL?
Öffne dein Terminal und tippe je nach System python oder python3.
Wie beende ich die REPL?
Tippe quit() oder exit(), oder nutze Strg+D unter Unix bzw. Strg+Z + Enter unter Windows.
Worin unterscheidet sich die REPL vom Ausführen eines Skripts?
Die REPL führt Code interaktiv Zeile für Zeile aus, während ein Skript den gesamten Code in einer Datei auf einmal ausführt.
Was ist die Variable _ in der REPL?
_ enthält das Ergebnis des zuletzt ausgewerteten Ausdrucks, damit du es schnell wiederverwenden kannst.
Was bedeuten die Prompts >>> und ...?
>>> ist das primäre Prompt, ... ist das sekundäre Prompt für mehrzeilige Eingaben.
