EMZETT.
Login

Kurz: Eine Funktion ist ein benannter Codeblock, den du beliebig oft aufrufen kannst. Funktionen vermeiden Wiederholungen, gliedern Programme und machen sie testbar. Du hast schon eingebaute Funktionen wie print() und len() benutzt.

Teil des Kurses Python

Kapitel 21 von 44 im Kurs Python (Abschnitt „Funktionen“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Eine Funktion ist ein benannter Codeblock, den du beliebig oft aufrufen kannst. Funktionen vermeiden Wiederholungen, gliedern Programme und machen sie testbar. Du hast schon eingebaute Funktionen wie print() und len() benutzt; jetzt schreibst du eigene.

Funktionen definieren und aufrufen

Eine Funktion beginnt mit def, dann Name, Klammern und Doppelpunkt. Der Block darunter ist eingerückt:

def begruessung():
    print("Hallo!")
    print("Schön, dass du da bist.")
 
begruessung()
begruessung()

Ausgabe:

Hallo!
Schön, dass du da bist.
Hallo!
Schön, dass du da bist.

Die Definition allein führt nichts aus. Erst der Aufruf begruessung() startet den Code.

Parameter

In den Klammern stehen Parameter, also Platzhalter für Werte, die beim Aufruf übergeben werden (Argumente):

def begruesse(name):
    print(f"Hallo, {name}!")
 
begruesse("Mia")
begruesse("Tom")

Ausgabe:

Hallo, Mia!
Hallo, Tom!

Rückgabewerte mit return

Mit return gibt eine Funktion einen Wert an den Aufrufer zurück. Danach endet die Funktion sofort:

def quadrat(x):
    return x * x
 
ergebnis = quadrat(7)
print(ergebnis)
print(quadrat(3) + quadrat(4))

Ausgabe:

49
25

Eine Funktion ohne return liefert automatisch None. Der Unterschied zwischen Ausgeben und Zurückgeben ist wichtig: Mit print zeigst du etwas an, mit return kannst du das Ergebnis weiterverwenden.

def nur_print(x):
    print(x * 2)
 
def mit_return(x):
    return x * 2
 
a = nur_print(5)       # gibt 10 aus, a ist None
b = mit_return(5)      # gibt nichts aus, b ist 10
print(a, b)

Ausgabe:

10
None 10

Mehrere Rückgabewerte

def statistik(zahlen):
    return min(zahlen), max(zahlen), sum(zahlen) / len(zahlen)
 
kleinste, groesste, mittel = statistik([4, 8, 15, 16, 23, 42])
print(kleinste, groesste, round(mittel, 2))

Ausgabe:

4 42 18.0

Entscheidungen in Funktionen

def ist_gerade(n):
    return n % 2 == 0
 
def note_text(note):
    if note == 1:
        return "sehr gut"
    if note == 2:
        return "gut"
    return "ausbaufähig"
 
print(ist_gerade(10), ist_gerade(7))
print(note_text(1), note_text(5))

Ausgabe:

True False
sehr gut ausbaufähig

Dokumentation mit Docstrings

Der erste Text in einer Funktion ist ihr Docstring. Er erklärt, was die Funktion tut, und wird von help() angezeigt:

def flaeche(laenge, breite):
    """Berechnet die Fläche eines Rechtecks."""
    return laenge * breite
 
print(flaeche(3, 4))
print(flaeche.__doc__)

Ausgabe:

12
Berechnet die Fläche eines Rechtecks.

Tipp

Eine gute Funktion tut eine Sache, hat einen sprechenden Namen (berechne_mwst, ist_primzahl) und gibt ihr Ergebnis zurück, statt es nur auszugeben.

Merke

  • def name(parameter): definiert, name(argument) ruft auf
  • return gibt einen Wert zurück und beendet die Funktion; ohne return kommt None
  • Mehrere Rückgabewerte werden als Tupel geliefert
  • Docstrings beschreiben die Funktion
  • Funktionen vermeiden Wiederholung und machen Code lesbar

Übungsaufgabe

Schreibe eine Funktion ist_primzahl(n), die True oder False zurückgibt, und teste sie mit den Zahlen 1 bis 20.

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Referenzen, Kopien und verschachtelte Daten

Weiter: Parameter im Detail

Alle Kapitel: Python im Überblick