Kapitel 6
Funktionen
168
Abb. 6.5: Lokale Namensräume zu Beginn der Ausführung von quadriere()
In Zeile #1 des Beispielskripts wird das Listen-Objekt mit dem lokalen Namen l verändert.
Die Bindung des Namens
liste an dieses Objekt bleibt aber erhalten.
6.5 Voreingestellte Parameterwerte
Manche Funktionen haben optionale Argumente, die bei einem Aufruf auch weggelassen
werden können. Optionale Argumente werden bei der Definition der Funktion so gehand-
habt, dass für sie bestimmte Default-Werte voreingestellt sind. Wenn beim Aufruf der
Funktion das betreffende Argument fehlt, wird für die internen Berechnungen der vorein-
gestellte Wert verwendet.
Default-Werte werden den formalen Parametern innerhalb der Parameterliste im Funk-
tionskopf zugewiesen. Format:
Die folgende Funktion erstellt eine Wertetabelle für die Funktion
f()=x
2
. Voreingestellt ist,
dass für
10 Werte mit einem Abstand von 0.5 die Funktionswerte ausgegeben werden.
Geben Sie die Funktion mit IDLE in einem Editorfenster ein und führen Sie sie aus
(
RUN|MODULE RUN). Die Funktion kann nun (im Shell-Fenster) auf verschiedene Weise auf-
gerufen werden. Wenn kein Argument übergeben wird, verwendet die Funktion beide
def funktion (arg1=wert1, arg2=wert2, ...):
def wertetabelle (anzahl=10, # Anzahl der Funktionswerte
schritt=0.5 # Abstand zwischen zwei Zahlen
):
x = 0.0
print('Wertetabelle')
for i in range(anzahl):
print(x, ' ', x*x)
x += schritt
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Objekt
liste
lokaler Namensraum:
l
Hauptprogramm
quadriere()
lokaler Namensraum:
169
6.5
Voreingestellte Parameterwerte
Default-Werte, das heißt, die Wertetabelle besteht aus 10 Zeilen und der Abstand der x-
Werte ist
0.5:
Wenn beim Aufruf nur ein Argument übergeben wird, so wird dieses dem ersten formalen
Parameter zugeordnet, in diesem Fall also dem Parameter
anzahl. Für den zweiten Parame-
ter wird der voreingestellte Wert (hier
0.5) eingesetzt.
Wenn Sie zwei Argumente übergeben, dann werden sie den beiden Parametern
anzahl und
schritt übergeben.
Die Default-Werte werden nur ein einziges Mal – nämlich bei der Definition der Funktion –
eingesetzt und nicht etwa bei jedem Aufruf. Das spielt dann eine Rolle, wenn wir es mit
änderbaren Objekten z.B. Listen zu tun haben. Betrachten Sie folgende Funktionsdefini-
tion:
>>> wertetabelle()
Wertetabelle
0.0 0.0
0.5 0.25
1.0 1.0
1.5 2.25
2.0 4.0
2.5 6.25
3.0 9.0
3.5 12.25
4.0 16.0
4.5 20.25
>>> wertetabelle(5)
Wertetabelle
0.0 0.0
0.5 0.25
1.0 1.0
1.5 2.25
2.0 4.0
>>> wertetabelle(5, 1)
Wertetabelle
0.0 0.0
1.0 1.0
2.0 4.0
3.0 9.0
4.0 16.0

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.