Zum Inhalt

03 - Funktionen

In diesem Abschnitt wollen wir uns mit Funktionen beschäftigen. Funktionen sind ein wichtiges Konzept in der Programmierung. Sie helfen uns unseren Code zu strukturieren und zu organisieren. Außerdem können wir Funktionen wiederverwenden.

Funktionsdefinition

Eine Funktion wird in Python mit dem Schlüsselwort def definiert. Nach dem Schlüsselwort folgt der Name der Funktion, diesen können wir frei wählen. Anschließend folgen die Parameter der Funktion in runden Klammern. Parameter sind Werte, die wir der Funktion übergeben. Wenn wir mehrere Parameter übergeben wollen, trennen wir diese mit einem Komma. Anschließend folgt ein Doppelpunkt und der Inhalt unserer Funktion, der eingerückt ist. Die Einrückung ist wichtig, da Python so weiß, dass der eingerückte Code zur Funktion gehört. Der eingrückte Code wird auch als Rumpf der Funktion bezeichnet.

funktionen.py
1
2
3
4
5
6
7
8
9
def funktion():
    print("Hallo Welt")

def funktion_mit_parameter(parameter):
    print(parameter)

def funktion_mit_mehreren_parametern(parameter1, parameter2):
    print(parameter1)
    print(parameter2)

Funktionsaufruf

Wenn du den vorherigen Code abgeschrieben und ausgeführt haben solltest, wirst du festgestellt haben, dass nichts passiert ist. Das liegt daran, dass wir die Funktionen zwar definiert haben, allerdings noch nicht aufgerufen haben. Um eine Funktion aufzurufen, schreiben wir den Namen der Funktion gefolgt von runden Klammern. Sollte die Funktion Parameter erwarten, müssen wir diese in den Klammern übergeben.

funktionen.py
funktion()
funktion_mit_parameter("Hallo Welt")
funktion_mit_mehreren_parametern("Hallo", "Welt")

Beispiel: Anzahl von Ziffern in einem String

Wir wollen nun eine Funktion schreiben, die uns die Anzahl der Ziffern in einem String ausgibt. Das Programm soll nach eingabe des Wortes "ENDE" beendet werden.

funktionen2.py
def anzahl_ziffern(string):
    anzahl = 0

    for zeichen in string:
        if zeichen.isdigit():
            anzahl = anzahl + 1

    print("Anzahl der Ziffern:", anzahl)

while True:
    eingabe = input("Bitte geben Sie ein Wort ein: ")

    if eingabe == "ENDE":
        break

    anzahl_ziffern(eingabe)
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
Funktion anzahl_ziffern wird definiert, sie erwartet einen Parameter namens string
Die Variable anzahl wird mit dem Wert 0 initialisiert

Es wird eine Schleife für jedes Zeichen in string gestartet
    Es wird überprüft ob das Zeichen eine Ziffer ist
        Wenn ja, wird die Variable anzahl um 1 erhöht

Es wird die Anzahl der Ziffern ausgegeben

Es wird eine Endlosschleife gestartet
    Es wird eine Eingabe erwartet

    Wenn die Eingabe "ENDE" ist, 
        wird die Schleife beendet

    Ansonsten wird die Funktion anzahl_ziffern mit der Eingabe als Parameter aufgerufen

Rückgabewert

Bisher haben wir Funktionen gesehen, die direkt die Ausgabe auf dem Bildschirm ausgeben. Wir können Funktionen aber auch so schreiben, dass sie einen Wert zurückgeben. Dazu wird das Schlüsselwort return verwendet. Nach dem Schlüsselwort folgt der Wert, der zurückgegeben werden soll. Anschließend wird die Funktion beendet.

Als Beispiel wollen wir ein Programm schreiben das eine eingebene Zahl zum Quadrat berechnet und anschließend halbiert. Das Ergebnis soll ausgegeben werden.

funktionen3.py
def quadrat(zahl):
    return zahl * zahl

def halbieren(zahl):
    return zahl / 2

eingabe = input("Bitte geben Sie eine Zahl ein: ")

if eingabe.isdigit():
    zahl = float(eingabe)
    zwischenergebnis = quadrat(zahl)
    ergebnis = halbieren(zwischenergebnis)
    print("Ergebnis:", ergebnis)
else:
    print("Bitte geben Sie eine Zahl ein.")
Überleg dir was passiert, wenn du das Skript ausführst. Gehe dazu Zeile für Zeile vor. Anschließend kannst du überprüfen ob du richtig liegst.
Funktion quadrat wird definiert, sie erwartet einen Parameter namens zahl
    Die Funktion gibt zahl * zahl zurück

Funktion halbieren wird definiert, sie erwartet einen Parameter namens zahl
    Die Funktion gibt zahl / 2 zurück

Es wird eine Eingabe erwartet

Wenn die Eingabe eine Zahl ist
    wird die Eingabe in eine Zahl umgewandelt
    wird die Funktion quadrat mit der Zahl als Parameter aufgerufen und das Ergebnis in der Variable zwischenergebnis gespeichert
    wird die Funktion halbieren mit dem Zwischenergebnis als Parameter aufgerufen und das Ergebnis in der Variable ergebnis gespeichert
    wird das Ergebnis ausgegeben
Ansonsten wird eine Fehlermeldung ausgegeben

Optional: kürzerer Code

Wir können den Code noch etwas kürzer schreiben, indem wir die Variablen zwischenergebnis und ergebnis weglassen und die Funktionen direkt ineinander verschachteln.

funktionen3.py
zahl = float(eingabe)
print("Ergebnis:", halbieren(quadrat(zahl)))

mehrere Rückgabewerte

Eine Funktion kann auch mehrere Werte zurückgeben. Dazu werden die Werte mit einem Komma getrennt. Die Werte werden dann in der Reihenfolge zurückgegeben, in der sie angegegeben wurden. Wir können die Werte dann in Variablen speichern.

funktionen4.py
1
2
3
4
5
6
7
8
def funktion():
    return 1, 2, 3

a, b, c = funktion()

print(a)
print(b)
print(c)