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
defund 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 Zeile1einen Parameter namensname. - Sie nimmt beim Aufruf also einen Wert entgegen, den sie (automatisch) der Variable
namezuweist. - 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 Zeile4mit dem Argument"Bob"für den Parameternameaufgerufen. - Auf Zeile
5wird 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")