EMZETT.
Login

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, while oder try fehlt 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 block

Richtig:

def gruss(name):
    print("Hallo", name)

Lösungswege

  1. Vier Leerzeichen pro Ebene verwenden und überall gleich bleiben.
  2. Im Editor Tabs sichtbar machen und in Leerzeichen umwandeln (VS Code: „Einzug in Leerzeichen konvertieren“).
  3. Eine Zeile ohne Inhalt? Dann pass schreiben.
  4. Mit python -m tabnanny datei.py Mischformen finden.
  5. Einen Formatierer wie Black oder Ruff nutzen.

Siehe auch: ModuleNotFoundError