Funktionen
Mit einer Funktion können wir eine Gruppe von Instruktionen bündeln und benennen:
from turtle import *
def quadrat():
for i in range(4):
forward(100)
left(90)
quadrat()
print("Fertig.")
Im obigen Programm wird auf den Zeilen 3
-6
die Funktion quadrat()
definiert. Sobald diese Zeilen ausgeführt worden sind, ist dieser neue Befehl quadrat()
bekannt und kann verwendet werden. Zu diesem Zeitpunkt wurde aber noch keine Turtle-Zeichnung erstellt.
Auf Zeile 8
wird die quadrat()
-Funktion verwendet. Python springt damit wieder nach oben auf die 3
und führt die Befehle auf den Zeilen 4
-6
aus. Sobald die Funktion fertig ausgeführt wurde, geht die Ausführung mit Zeile 9
weiter.
Folgende Punkte sind im Zusammenhang mit Funktionen zu beachten:
- Die Definition einer Funktion beginnt immer mit
def
und endet mit Klammern und einem Doppelpunkt - Die Einrückung funktioniert gleich wie der
for
- undwhile
-Schleife, respektive denif
-Verzweigungen. - Ein Funktionsaufruf beginnt nicht mit einem
def
, und endet mit Klammern, aber ohne Doppelpunkt. - Eine Funktion kann erst aufgerufen werden, wenn sie definiert ist. Die Definition muss also weiter oben stehen, als der erste Aufruf.
- Eine Funktion kann beliebig oft aufgerufen werden.
Parameter und Argumente
Wenn eine Funktion einen oder mehrere Werte entgegennimmt, dann unterscheiden wir konzeptuell zwischen Parametern und Argumenten:
- Parameter
- Ein Parameter ist ein Variablenname, über den eine Funktion gemäss ihrer Definition einen Wert entgegennimmt.
- Im unten stehenden Beispielprogramm definiert die Funktion
sag_hallo()
auf Zeile1
einen Parameter namensname
. - Sie nimmt beim Aufruf also einen Wert entgegen, den sie (automatisch) der Variable
name
zuweist. - Argument
- Ein Argument ist ein konkreter Wert, den wir einer Funktion beim Aufruf für einen bestimmten Parameter mitgeben.
- Im unten stehenden Beispielprogramm wird die
sag_hallo()
-Funktion auf Zeile4
mit dem Argument"Bob"
für den Parametername
aufgerufen. - Auf Zeile
5
wird sie erneut aufgerufen — diesmal jedoch mit dem Argument"Alice"
für den Parametername
.
def sag_hallo(name):
print("Hallo, " + name + "!")
sag_hallo("Bob")
sag_hallo("Alice")