Python IndentationError: Unindent stimmt mit keiner äußeren Einrückungsebene überein
- Die Einrückungsregel in Python
-
Ursachen für
IndentationError
in Python -
Beheben Sie den
IndentationError: unindent does not match any outer indentation level
in Python
Im Artikel erfahren wir, wie man den IndentationError
behebt, der während der Ausführung des Codes auftritt. Wir werden uns die verschiedenen Gründe ansehen, die diesen Fehler verursachen.
Wir werden auch Möglichkeiten finden, diesen Fehler in Python zu beheben. Beginnen wir damit, was der IndentationError
in Python ist.
Die Einrückungsregel in Python
Die Einrückung ist ein wesentlicher Bestandteil der Python-Sprache. Es hängt von der Einrückung ab, um Codeblöcke in seinem Code zu definieren.
Die Einrückung kann sowohl mit Leerzeichen als auch mit Tabulatoren erfolgen. Aufgrund der Einrückung ist es für einen Entwickler sehr einfach, den Fluss des Codes zu erkennen.
Sie können leicht erkennen, wo eine bestimmte Methode/Bedingung beginnt und endet.
Ursachen für IndentationError
in Python
Verwendung von Leerzeichen und Tabulatoren
Wenn Sie im Python-Code sowohl Leerzeichen als auch Tabulatoren zum Einrücken verwenden, wirft die IDE einen IndentationError
. Während dies normalerweise bei diesen Fehlern der Fall ist, können sie auch auftreten, wenn Sie in einem Teil des Codes keine Einrückung verwenden.
Wie oben erwähnt, gibt es zwei Möglichkeiten, Ihren Code einzurücken: Tabulator oder Leerzeichen. In Python ist der Standard jeder Einrückungsebene vier Leerzeichen oder ein Tabulator.
Während diese Art der Einrückung die Rechtsnorm für Python ist, ist sie auch eine visuelle Hilfe für Python-Entwickler, die aufgrund dieser Einrückung ihre Codekonstrukte verfolgen können.
Beispielcode:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
exploring_indentation()
Die Ausgabe des Codes:
Indentation works like this!
Einrückungsfehler aufgrund einer zusätzlichen Einrückung im Code
Ein weiterer Grund für einen IndentationError
kann ein zusätzlicher Einzug sein, der wie im Beispielcode unten hinzugefügt wurde.
Beispielcode:
def exploring_indentation():
number = 9
if number == 9:
print("Indentation works like this!")
else:
print("this is an example of an unnecessary indent")
exploring_indentation()
Die Ausgabe des Codes:
File "<tokenize>", line 5
else:
^
IndentationError: unindent does not match any outer indentation level
Der else
-Teil des Codes befindet sich innerhalb der if
-Bedingung, weil der Einzug falsch ist.
Beheben Sie den IndentationError: unindent does not match any outer indentation level
in Python
Konsequente Verwendung von Leerzeichen und Tabulatoren
Während es mühsam genug klingt, Einrückungen im Auge zu behalten, gibt es Code-Editoren wie PyCharm und VS Code, die über integrierte Funktionen verfügen, mit denen Sie Einrückungen im Auge behalten können.
Wenn Sie beim Schreiben von Code Enter drücken, um zur nächsten Zeile zu gelangen, wird der Editor automatisch Ihre folgende Codezeile einrücken.
Wenn Sie Tabulatoren und Leerzeichen in Ihrem Code mischen, finden Sie außerdem immer die Option, Tabulatoren in Leerzeichen umzuwandeln oder umgekehrt.
In PyCharm müssen Sie beispielsweise zu Bearbeiten
in der oberen linken Ecke gehen, die Option Einzüge konvertieren
auswählen und je nach Bedarf In Tabulatoren
oder In Leerzeichen
auswählen.
Passen Sie die äußere Einzugsebene an
Im folgenden Beispielcode werden die Anweisungen if
und elif
ohne Einrückung zugewiesen. Gleichzeitig wird die else
-Anweisung mit einem zusätzlichen Einzug versehen.
Aufgrund dieser zusätzlichen Einrückung in der äußeren Ebene kann der Python-Compiler die else
-Anweisung nicht erkennen und gibt daher den IndentationError
aus (unindent passt zu keiner äußeren Einrückungsebene).
Beispielcode:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
Die Ausgabe des Codes:
File "<string>", line 7
else:
^
IndentationError: unindent does not match any outer indentation level
Richtiger Beispielcode:
a = int(input("Enter an integer A: "))
b = int(input("Enter an integer B: "))
if b > a:
print("B is greater than A")
elif a == b:
print("A and B are equal")
else:
print("A is greater than B")
Diese Probleme lassen sich in Python-spezifischen Editoren leicht beheben, da sie speziell zur Verbesserung des Programmiererlebnisses erstellt wurden, ohne sich Gedanken über kleinere Fehler wie Einrückungen machen zu müssen.
Wenn Sie jedoch einen IDE-ähnlichen Notepad verwenden, sollten Sie sich vor Tabulatoren und Leerzeichen in Acht nehmen und die Einrückungen sehr genau verfolgen, da sie nicht auf diese Fehler hinweisen, bis Sie den Code ausgeführt haben.
Wir hoffen, dass Sie diesen Artikel hilfreich finden, um zu verstehen, wie Sie den IndentationError
in Python beheben können.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung