Funktionen definieren
In dieser Lektion lernst du, eigene Funktionen zu schreiben. Beginnen wir mit einem Problem: Wir brauchen die Flächen von drei Rechtecken. Die Fläche eines Rechtecks ist Breite mal Höhe, also könnten wir schreiben:
breite1 = 5
hoehe1 = 6
flaeche1 = breite1 * hoehe1
print(flaeche1)
breite2 = 10
hoehe2 = 5
flaeche2 = breite2 * hoehe2
print(flaeche2)
breite3 = 1
hoehe3 = 5
flaeche3 = breite3 * hoehe3
print(flaeche3)Das gibt aus:
30
50
5Das funktioniert, aber wir haben dieselben vier Zeilen dreimal geschrieben, und nur die Zahlen haben sich geändert. Stell dir hundert Rechtecke vor! Und wenn wir einen Fehler in der Berechnung fänden, müssten wir ihn an hundert Stellen korrigieren.
Programmierer versuchen, Code nicht zu wiederholen. Stattdessen schreiben sie den wiederholten Teil einmal, geben ihm einen Namen und verwenden ihn überall, wo sie ihn brauchen. Ein solches benanntes Stück Code heißt Funktion.
Du hast schon Funktionen benutzt, die zu Python gehören, zum Beispiel print(), len(), str() oder sum(). Jetzt schreibst du eigene. Eine Funktion zu erstellen nennt man sie definieren:
def hallo_sagen():
print("Hallo!")
print("Einen schönen Tag noch!")Eine Funktionsdefinition besteht aus diesen Teilen:
- Das Schlüsselwort
def(kurz für englisch define, „definieren“). Es sagt Python, dass eine Funktion folgt. - Der Name der Funktion, hier
hallo_sagen. Er folgt denselben Regeln wie Variablennamen: keine Leerzeichen, und Namen aus mehreren Wörtern schreibt man in snake_case. Wähle einen Namen, der sagt, was die Funktion tut, zum Beispielhallo_sagenoderflaeche_ausgeben. - Klammern
(). Sie sind vorerst leer; bald erfährst du, was hineinkommt. - Ein Doppelpunkt
:am Ende der Zeile, genau wie nachifoderfor. - Der eingerückte Codeblock unter der ersten Zeile, der Rumpf der Funktion. Er enthält die Befehle, die die Funktion ausführt. Der Rumpf endet dort, wo die Einrückung endet.
Wenn du diesen Code ausführst, wird nichts ausgegeben. Das ist kein Fehler! Eine Definition sagt Python nur, was die Funktion tun soll, wie ein aufgeschriebenes Rezept in einem Kochbuch: Noch hat niemand gekocht. In der nächsten Übung bringst du die Funktion zum Laufen.
Achte auf den Doppelpunkt und die Einrückung. Ohne Doppelpunkt endet das Programm mit dem Fehler SyntaxError: expected ':'. Ist der Rumpf nicht eingerückt, bekommst du IndentationError: expected an indented block after function definition on line 1.
So schreibst du es:
Anweisungen
- 1
Erstelle eine Funktion namens
erste_funktion, deren RumpfDas ist meine erste Funktion!ausgibt. Führe dann das Programm aus: Es wird noch nichts ausgegeben, und genau so soll es sein.