Python IndentationError: Unindent stimmt mit keiner äußeren Einrückungsebene überein

Abid Ullah 15 Februar 2024
  1. Die Einrückungsregel in Python
  2. Ursachen für IndentationError in Python
  3. Beheben Sie den IndentationError: unindent does not match any outer indentation level in Python
Python IndentationError: Unindent stimmt mit keiner äußeren Einrückungsebene überein

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.

Bearbeiten der Einstellung von Pycharm, um den Einzugsfehler zu beheben

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.

Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

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.

LinkedIn

Verwandter Artikel - Python Error