Einrückung

⬇️ Jupyter Notebook herunterladen

Bevor wir im nächsten Abschnitt Python-Funktionen erkunden, ist es wichtig, die Einrückungsregeln von Python zu verstehen, da diese grundlegend sind, um fehlerfreien Python-Code zu schreiben.

Einrückung ist in Python nicht nur eine Stilfrage; sie hat eine syntaktische Bedeutung. Python verwendet Einrückungen, um Codeblöcke zu definieren. Die korrekte Verwendung von Einrückungen ist entscheidend, damit Ihr Code wie erwartet ausgeführt wird.

Wichtige Hinweise zur Einrückung:

Richtige Einrückung

Beispielcode für die Erzeugung einer Funktion (wir behandeln Funktionen an einer anderen Stelle des Buches im Detail):

# Funktion wird erzeugt
def compute_area(width, height):
    # Dies ist der Anfang eines Funktionsblocks
    area = width * height 
    return area 

#Aufrufen der Funktion
print(compute_area(5, 10))  # Diese Zeile ist nicht eingerückt, was zeigt, dass sie nicht Teil der Funktion ist

Erläuterung:

  • Die Funktion compute_area beginnt mit einem Doppelpunkt (:) und der nachfolgende Code ist vier Leerzeichen eingerückt.
  • Sowohl die Berechnung von area als auch die return-Anweisung sind aufgrund ihrer Einrückung Teil der Funktion.
  • Die print-Anweisung ist relativ zur Funktionsdefinition nicht eingerückt, was zeigt, dass sie außerhalb der Funktion steht.

Falsche Einrückung

Beispielcode mit falscher Einrückung:

def calculate_percentage(total, amount):
    if total > 0:
    percentage = (amount / total) * 100 
    return percentage  
else:
    return 0
IndentationError: expected an indented block after 'if' statement on line 3

Erläuterung:

  • Fehler: Das obige Beispiel führt zu einem IndentationError, weil die Einrückungsebenen nicht konsistent sind.
  • Zeile 3: Die Zeile percentage = (amount / total) * 100 soll ausgeführt werden, wenn die Bedingung total > 0 wahr ist. Sie ist jedoch nicht eingerückt, was unklar macht, ob sie innerhalb der if-Anweisung oder außerhalb ausgeführt werden soll.
  • Zeilen 4 und 5: Die return percentage-Anweisung sollte eingerückt werden, um unter die if-Bedingung zu fallen, was zeigt, dass sie Teil des if-Blocks ist. Die else:-Zeile ist ebenfalls nicht korrekt mit der if-Zeile ausgerichtet, was zu einem Syntaxfehler führt.

Korrigierte Version:

def calculate_percentage(total, amount):
    if total > 0:
        percentage = (amount / total) * 100  
        return percentage  
    else:
        return 0