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
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
25Eine 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 10Mehrere 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.0Entscheidungen 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ähigDokumentation 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 aufreturngibt einen Wert zurück und beendet die Funktion; ohnereturnkommtNone- 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
Was liefert eine Funktion ohne return-Anweisung?
- None (richtig)
- 0
- Einen leeren Text
- Einen Fehler
Was ist der Unterschied zwischen print und return?
- print zeigt an, return gibt einen Wert zur Weiterverwendung zurück (richtig)
- Es gibt keinen Unterschied
- return zeigt den Wert am Bildschirm an
- print beendet die Funktion
Was ist ein Docstring?
- Ein Text am Anfang einer Funktion, der sie beschreibt (richtig)
- Ein Kommentar mit #
- Ein spezieller Datentyp
- Eine Fehlermeldung
Weiter im Kurs
Zurück: Referenzen, Kopien und verschachtelte Daten
Weiter: Parameter im Detail
Alle Kapitel: Python im Überblick