IndentationError (Python)
Kurz: Python meldet, dass die Einrückung einer Zeile nicht zum umgebenden Code passt.
Genauer: Python nutzt Einrückungen statt geschweifter Klammern, um Blöcke zu bilden. Stimmt die Einrückung nicht, bricht der Interpreter schon vor dem Ausführen ab. Typische Meldungen: IndentationError: unexpected indent, expected an indented block und unindent does not match any outer indentation level.
Im Detail
Mögliche Ursachen
- Nach
if,for,def,class,whileodertryfehlt der eingerückte Block. - Tabs und Leerzeichen gemischt (sieht gleich aus, ist es aber nicht).
- Eine Zeile ist versehentlich eingerückt oder nicht eingerückt.
- Code aus dem Internet wurde mit falscher Formatierung kopiert.
Beispiel
def gruss(name):
print("Hallo", name) # IndentationError: expected an indented blockRichtig:
def gruss(name):
print("Hallo", name)Lösungswege
- Vier Leerzeichen pro Ebene verwenden und überall gleich bleiben.
- Im Editor Tabs sichtbar machen und in Leerzeichen umwandeln (VS Code: „Einzug in Leerzeichen konvertieren“).
- Eine Zeile ohne Inhalt? Dann
passschreiben. - Mit
python -m tabnanny datei.pyMischformen finden. - Einen Formatierer wie Black oder Ruff nutzen.
Siehe auch: ModuleNotFoundError