# Funktion wird erzeugt
def compute_area(width, height):
# Dies ist der Anfang eines Funktionsblocks
= width * height
area 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
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:
- Konsistenz: Der Standard in Python ist die Verwendung von 4 Leerzeichen pro Einrückungsebene, (in einigen Entwicklungs-Umgebungen können Tabs so konfiguriert werden, dass sie automatisch in Leerzeichen umgewandelt werden).
- Codeblöcke: Funktionen, Schleifen, Bedingungen und andere Steuerstrukturen verwenden Einrückungen, um anzugeben, welcher Code innerhalb des Blocks gehört.
Richtige Einrückung
Beispielcode für die Erzeugung einer Funktion (wir behandeln Funktionen an einer anderen Stelle des Buches im Detail):
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 diereturn
-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:
= (amount / total) * 100
percentage 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 Bedingungtotal > 0
wahr ist. Sie ist jedoch nicht eingerückt, was unklar macht, ob sie innerhalb derif
-Anweisung oder außerhalb ausgeführt werden soll. - Zeilen 4 und 5: Die
return percentage
-Anweisung sollte eingerückt werden, um unter dieif
-Bedingung zu fallen, was zeigt, dass sie Teil desif
-Blocks ist. Dieelse:
-Zeile ist ebenfalls nicht korrekt mit derif
-Zeile ausgerichtet, was zu einem Syntaxfehler führt.
Korrigierte Version:
def calculate_percentage(total, amount):
if total > 0:
= (amount / total) * 100
percentage return percentage
else:
return 0