Einrückungen sind ein wichtiges Merkmal von lesbarem, wartbarem Code, aber nur wenige Sprachen erzwingen sie. Python ist einer dieser wenigen.
Wenn Python feststellt, dass Ihr Code falsch eingerückt ist, sehen Sie die Meldung „IndentationError“, wenn Sie Ihren Code ausführen. Aber wie behebt man das und wie verhindert man das in Zukunft?
Warum erhalten Sie den Einrückungsfehler in Python?
Der Fehler „IndentationError: erwartet einen eingerückten Block“ ist etwas, das Sie wahrscheinlich sehen werden, wenn Sie zum ersten Mal mit Python beginnen, insbesondere wenn Sie von einer anderen Programmiersprache kommen.
Die Besonderheiten der Einrückungsregeln von Python sind komplex, aber sie laufen auf eine Sache hinaus: Code in Blöcke einrücken. Dies gilt für Funktionen, if-Klauseln und so weiter. Hier ist ein Beispiel für falsch formatierten Python-Code:
fname = "Gaurav"
lname = "Siyal"
if fname == "Gaurav" und lname == "Siyal":
print("Du bist Gaurav")
anders:
print("Du bist jemand anderes")
Wenn Sie versuchen, den obigen Code auszuführen, erhalten Sie eine Meldung wie diese:
Datei "tmp.py", Zeile 5
print("Du bist Gaurav")
^
IndentationError: einen eingerückten Block erwartet
Stattdessen sollten Sie am Anfang der beiden Zeilen, die Blöcke darstellen, entweder einen Tabulator oder eine Reihe von Leerzeichen hinzufügen:
fname = "Gaurav"
lname = "Siyal"
if fname == "Gaurav" und lname == "Siyal":
print("Du bist Gaurav")
anders:
print("Du bist jemand anderes")
Wenn Sie mit Leerzeichen einrücken, können Sie tatsächlich jede beliebige Zahl verwenden, solange Sie konsistent und eindeutig sind. Die meisten Programmierer verwenden zwei, vier oder acht Leerzeichen.
Häufige Fälle von korrekter Einrückung
Hier sind einige Beispiele, auf die Sie sich beziehen können, damit Sie sicherstellen können, dass Sie richtig einrücken.
If-Anweisungen
Rücken Sie den Block ein, der auf ein folgt wenn Aussage:
if mein_name == "Gaurav":
print("Mein Name ist Gaurav")
gibt Wahr zurück
Funktionen
Der Körper einer Funktion ist ein Block. Sie sollten diesen gesamten Block einrücken:
def magic_number():
Ergebnis = 42
Ergebnis zurückgeben
print magic_number()
Für Schleifen
Wie bei einer if-Anweisung sollte der Rumpf einer for-Schleife um eine Ebene weiter eingerückt werden als die Zeile, die mit dem beginnt zum Stichwort:
für i im Bereich (10):
drucken (ich)
Stellen Sie sicher, dass Ihr Editor korrekt einrückt
Die meisten modernen Texteditoren unterstützen automatische Code-Einrückungen. Wenn Ihr Editor bestimmt, dass eine Codezeile eingerückt werden soll, fügt er automatisch Tabulatoren oder Leerzeichen hinzu.
Im Spyder, Einrückungsoptionen sind unter verfügbar Extras > Einstellungen > Quellcode:
Wenn Sie vim verwenden, können Sie Bearbeiten Sie Ihre Konfiguration und benutze die automatischer Einzug und zugehörige Optionen zum Konfigurieren des Einzugs. Hier ist zum Beispiel ein gängiges Setup:
automatisches Einrücken setzen
expandtab setzen
setze tabstop=4
setze softtabstop=4
setze shiftwidth=4
Dadurch wird automatisch mit vier Leerzeichen eingerückt.
Allerdings kann kein Redakteur die automatische Einrückung kugelsicher machen. Sie müssen immer noch auf die Einrückung achten, da einige Fälle mehrdeutig sind:
In diesem Beispiel das Finale Rückkehr -Anweisung wird um eine Ebene von der Funktionssignatur in der ersten Zeile eingerückt. Wenn Sie jedoch Ihren Cursor am Ende der vorletzten Zeile positionieren und drücken Eingeben, kann eines von zwei Dingen passieren. Ihr Redakteur könnte den Cursor positionieren:
- Zwei Einzugsebenen innen, ausgerichtet mit "res =..."
- Eine Einzugsebene nach innen, ausgerichtet am „else:“
Ihr Editor kann zwischen diesen beiden Fällen nicht unterscheiden: Sie möchten vielleicht mehr Code in den if/else-Block einfügen oder auch nicht.
Behandeln des Python-Fehlers „Erwartet einen eingerückten Block“.
Fehler gehören in Python wie in jeder anderen Programmiersprache zum Alltag. Pythons strenge Regeln für Einrückungen können eine neue Art von Fehlern hinzufügen, über die man nachdenken muss, aber sie sind nützlich. Richtig eingerückter Code ist besser lesbar und konsistenter in allen Teams.
Der Einrückungsfehler ist nicht der einzige, mit dem Sie sich befassen müssen. Es ist hilfreich, sich mit gängigen Python-Fehlern vertraut zu machen, damit Sie wissen, wie man sie debuggt und was zu tun ist, um sie zu beheben.
Was bedeutet der Python-Fehler „Listenindex außerhalb des Bereichs“?
Lesen Sie weiter
Verwandte Themen
- Programmierung
- Python
Über den Autor

Gaurav Siyal hat zwei Jahre Erfahrung als Autor und hat für eine Reihe von Unternehmen für digitales Marketing und Software-Lebenszyklusdokumente geschrieben.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um sich anzumelden