5  Wiederverwendbarer Code mit Funktionen

Stellen Sie sich vor, Sie müssen eine bestimmte Berechnung mehrfach im Programm durchführen. Anstatt den Code jedes Mal neu zu schreiben, können Sie ihn in einer Funktion bündeln.

Funktionen sind ein zentrales Werkzeug, um Code:

5.1 Lernziele dieses Kapitels

Am Ende dieses Kapitels können Sie:

  • eigene Funktionen mit def erstellen,
  • Parameter übergeben und Rückgabewerte nutzen,
  • Funktionen sinnvoll in Programmen einsetzen.

5.2 Eine Funktion definieren

Eine Funktion besteht aus folgenden Teilen:

  1. Definition mit def
  2. Funktionsname
  3. Parameter in Klammern (optional)
  4. Einrückung für den Funktionskörper
  5. (optional) return-Anweisung

Beispiel:

def hallo(name="Gast"):
    begruessung = "Hallo " + name + "!"
    return begruessung

Fangen wir mit dem ersten Stichwort an. Funktionen werden mit def definiert und können beliebig oft aufgerufen werden:

def begruessung():
    print("Hallo und willkommen!")

Sie wird erst ausgeführt, wenn Sie sie aufrufen:

begruessung()
Hallo und willkommen!

5.3 Parameter übergeben

Funktionen können Eingabewerte (Parameter) erhalten:

def begruessung(name):
    print("Hallo", name + "!")

begruessung("Alex")
Hallo Alex!

5.4 Rückgabewerte mit return

Eine Funktion kann auch einen Wert zurückgeben:

def quadrat(zahl):
    return zahl * zahl

ergebnis = quadrat(5)
print(ergebnis)
25

5.5 Beispiel: Umrechnungen

5.5.1 Euro zu US-Dollar

def euro_zu_usd(betrag_euro):
    wechselkurs = 1.09
    return betrag_euro * wechselkurs

print("20 € sind", euro_zu_usd(20), "US-Dollar.")
20 € sind 21.8 US-Dollar.

Erstellen Sie eine Funktion begruesse(name), die den Namen in einem Begrüßungstext verwendet:

Hallo Fatima, schön dich zu sehen!
def begruesse(name):
    print("Hallo", name + ", schön dich zu sehen!")

begruesse("Fatima")
Hallo Fatima, schön dich zu sehen!

Schreiben Sie eine Funktion, die Celsius in Fahrenheit umrechnet:

Formel: [ F = C + 32 ]

def celsius_zu_fahrenheit(c):
    return c * 1.8 + 32

print(celsius_zu_fahrenheit(20))
68.0

5.6 Parameter mit Standardwerten

Sie können Parametern Standardwerte zuweisen. So kann die Funktion auch ohne Angabe eines Werts aufgerufen werden:

def begruessung(name="Gast"):
    print("Hallo", name + "!")

begruessung()         # Hallo Gast!
begruessung("Maria")  # Hallo Maria!
Hallo Gast!
Hallo Maria!
print() vs. return

Diese beiden Begriffe werden oft verwechselt:

Ausdruck Bedeutung
print() zeigt einen Text auf dem Bildschirm
return gibt einen Wert an den Aufrufer zurück

Beispiel:

def verdoppeln(x):
    return x * 2

# Ausgabe sichtbar machen
print(verdoppeln(5))  # Ausgabe: 10
10