153
Kapitel 6
Funktionen
Eine Funktion ist ein Objekt, das eine bestimmte Teilaufgabe eines Programms lösen kann.
Wenn eine Funktion aufgerufen wird, übernimmt sie gewisse Objekte als Eingabe, verarbei-
tet diese und liefert ein Objekt als Ausgabe zurück. Python bietet eine Reihe von Standard-
funktionen (built-in functions), die immer verfügbar sind und für häufig vorkommende
Aufgaben verwendet werden können. Im Abschnitt A.3, »Standardfunktionen und Stan-
dardklassen« auf Seite 930 finden Sie eine Übersicht über die wichtigsten Standardfunkti-
onen. Außerdem gibt es Module, die weitere spezielle Funktionen enthalten. Bevor man
eine solche spezielle Funktion nutzen kann, muss zuerst das Modul importiert werden. In
diesem Kapitel geht es hauptsächlich darum, wie man selbst eigene Funktionen definiert.
Mithilfe von Funktionen können Sie Python-Skripte übersichtlicher und kürzer formulie-
ren. Dabei sind zwei fundamentale Ideen von Bedeutung:
das Prinzip der schrittweisen Verfeinerung und
Rekursion.
6.1 Aufruf von Funktionen
Der Aufruf einer Funktion hat folgendes Format:
Eine Funktion wird aufgerufen, indem der Name der Funktion angegeben wird, gefolgt von
einer Liste aktueller Parameter in runden Klammern. Die aktuellen Parameter nennt man
auch Argumente. Aktuelle Parameter sind entweder konkrete Werte (Literale) oder Varia-
blennamen oder Ausdrücke, deren Auswertung Werte ergeben. Hinsichtlich der Argu-
mente sind zwei Dinge wichtig:
Funktionen akzeptieren in der Regel nur eine bestimmte Anzahl von Argumenten.
Die übergebenen Argumente müssen von einem bestimmten Typ sein.
Die Standardfunktion
len(), die die Länge (d.h. die Anzahl der Elemente) von Kollektionen
berechnet, akzeptiert als Argument nur genau ein Objekt, das ein Dictionary, ein String,
eine Liste, ein Tupel oder eine Menge sein muss. Wenn bei einem Aufruf dieser Funktion
z.B. eine Zahl – die keine Länge besitzt – als Argument übergeben wird, gibt es eine Fehler-
meldung.
funktion (parameterliste)
Kapitel 6
Funktionen
154
Korrekte Aufrufe von len():
Fehlerhafte Aufrufe von
len():
Es gibt auch Funktionen, die kein Argument benötigen. So gibt die Funktion
globals() ein
Dictionary zurück, das den globalen Namensraum beschreibt (siehe Abschnitt 6.4).
Manche Funktionen akzeptieren eine variable Zahl von Argumenten. So können der Funk-
tion
min() zwei oder beliebig mehr Parameter unterschiedlicher Datentypen übergeben
werden. Zurückgegeben wird das kleinste Objekt der Parameterliste:
Abb. 6.1: Infobox zu einer Funktion in der IDLE-Shell
Aufruf Zurückgegebenes Objekt Erläuterung zum Argument
len("Wort") 4
String
len ([1,2,3,4])
4
Liste
len ("sha"+4*"la")
11
Ausdruck, dessen Auswertung einen
String ergibt
t=(1,2,(3,4))
len(t)
3
Name eines Tupel-Objektes mit drei
Elementen
Aufruf Fehlermeldung Erläuterung
len (1)
TypeError
Das Objekt 1 ist eine Zahl und besitzt keine
Länge.
len ("eins", "zwei")
TypeError
Die Funktion len() akzeptiert nur ein
Argument.
>>> min(123, 345, 111, 34)
34
>>> min(1, 2, 0.2)
0.2
Wichtig
Ist Ihnen beim Aufruf einer Funktion in der IDLE-Shell etwas aufgefallen? Sobald Sie die
öffnende Klammer hinter dem Funktionsnamen eingegeben haben, erscheint eine kleine
Infobox, in der die Parameter und das zurückgegebene Objekt erklärt werden (siehe Abbil-
dung 6.1).
155
6.1
Aufruf von Funktionen
Dann gibt es Funktionen mit optionalen Argumenten. Bei der Beschreibung des Formats
eines Funktionsaufrufs werden optionale Argumente in eckige Klammern gesetzt. Ein opti-
onales Argument kann man verwenden oder auch weglassen. Zum Beispiel hat die Funk-
tion
int() folgendes Aufrufformat:
Das erste Argument
x ist ein Objekt, das eine ganze Zahl repräsentiert (z.B. der String
"100" oder die Gleitkommazahl 2.0). Wenn das erste Argument ein String ist, gibt das opti-
onale zweite Argument die Basis des Zahlensystems an, das zur Interpretation des Strings
verwendet wird. Im folgenden Beispiel wird der String
"100" einmal als Dezimalzahl, dann
als Hexadezimalzahl und schließlich als Dualzahl interpretiert.
Fehlt bei einem Aufruf ein optionales Argument, dann verwendet die Funktion einen vor-
eingestellten Wert, den man auch Default nennt. Bei der Funktion
int() ist der voreinge-
stellte Wert für das zweite Argument
10. Das heißt, der String im ersten Argument wird als
Dezimalzahl interpretiert.
Da auch Funktionen Objekte sind (siehe Abschnitt 2.3), können bei manchen Funktionen
auch (andere) Funktionen als Argumente übergeben werden. Ein Beispiel hierfür ist die
Standardfunktion
map(). Sie hat (in einfachen Fällen) folgendes Aufrufformat:
Dabei ist
function der Name einer Funktion und sequence eine Sequenz. Die Funktion
map() sorgt dafür, dass die Funktion function auf alle Objekte der Liste sequence ange-
wendet wird, und erzeugt ein so genanntes map-Objekt. Das repräsentiert eine Folge mit
den Ergebnissen und kann mit der Funktion
list() leicht in eine Liste umgewandelt wer-
den. Beispiel:
int(x[, basis])
>>> int("100",10)
100
>>> int("100",16)
256
>>> int("100",2)
4
>>> int("100")
100
map(function, sequence]
>>> a = map(len, ["Merkur", "Venus", "Erde", "Mars"])
>>> a
>>> <map object at 0x02C44910>
>>> list(a)
[6,5,4,4]

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.