6.1 Funktionen selbst schreiben#
Eine Funktion in Python ist eine Zusammenfassung von Anweisungen, die dazu dienen, eine bestimmte Teilaufgabe zu lösen. Dabei arbeitet die Funktion in ihrer allgemeinsten Form nach dem EVA-Prinzip. Die Funktion übernimmt Objekte als Eingabe, verarbeitet diese und liefert Objekte als Ergebnis zurück. Wie die Funktion dabei im Inneren genau funktioniert (Verarbeitung), ist unwichtig.
Beispielsweise gibt es im Modul numpy
die Funktion sqrt()
. Wir wissen, dass
wir der Funktion eine Zahl übergeben müssen (Eingabe), z.B. sqrt(5)
. Die
Funktion liefert dann als Ergebnis \(\sqrt{5}\) zurück. Welches Verfahren zur
Berechnung der Wurzel verwendet wurde, wissen wir nicht.
Insbesondere muss die Teilaufgabe, die die Funktion löst, nichts mit Mathematik
zu tun haben. Eine Funktion in der Informatik hat nichts mit einer
mathematischen Funktion zu tun, auch wenn oft mathematische Funktionen als
Beispiel verwendet werden. Ein Beispiel für eine nicht-mathematische Funktion
haben Sie mit input()
bereits kennengelernt. Die Funktion nimmt einen Text
entgegen, z.B. die Frage “Wie groß sind Sie?”. Dann wird dieser Text
verarbeitet, in diesem Fall auf dem Bidschirm angezeigt und die Antwort
eingelesen. Die Antwort kann dann in einer Variablen gespeichert werden.
Lernziele#
Lernziele
Sie kennen die Fachbegriffe
Aufruf einer Funktion,
Argumente oder Parameter einer Funktion und
Rückgabewert einer Funktion.
Sie können eine einfache Funktion selbst implementieren.
Die Benutzung von Funktionen (oder der Aufruf von Funktionen)#
Der Aufruf einer Funktion hat folgende Syntax:
rueckgabewert = funktion( argument1, argument2, ... )
Eine Funktion wird benutzt, indem man den Namen der Funktion und dann in runden Klammern ihre Parameter als Liste hinschreibt. Die konkreten Parameter einer Funktion beim Aufruf werden die Argumente der Funktion genannt. Welche Argumente für eine Funktion verwendet werden dürfen, hängt von der Implementierung der Funktion ab.
Beispielsweise kann als Argument für die len()
-Funktion ein String übergeben
werden oder eine Liste. Stellen Sie eine Vermutung auf: was könnte die
len()
-Funktion bewirken?
len('Hallo')
5
len([1,2,3,4,8,2])
6
In der Regel geben Funktionen wieder Ergebnisse zurück. Diese werden Rückgabewert genannt. Beispielsweise können die Rückgabewert einer Variable zugewiesen werden, um mit dem Ergebnis weiter zu arbeiten.
laenge1 = len('Hallo')
laenge2 = len(['Apfel', 'Banane', 'Erdbeere'])
if laenge1 < laenge2:
print('Das Wort Hallo enthält weniger Buchstaben als Früchte im Obstsalat.')
else:
print('Das Wort Hallo enthält mehr Buchstaben als Einträge in der Liste.')
Das Wort Hallo enthält mehr Buchstaben als Einträge in der Liste.
Definition von einfachen Funktionen#
Einfache Funktionen werden mit dem Schlüsselwort def
gefolgt vom
Funktionsnamen definiert. Die Code-Anweisungen der Funktion werden eingerückt.
def meine_funktion():
anweisung01
anweisung02
...
Erstes Beispiel:
Die folgende Funktion hat kein Argument und keine Rückgabe.
def gruesse_ausrichten():
print('Ich grüße Sie!')
Nachdem die Funktion gruesse_ausrichten()
so implementiert wurde, können wir
sie im Folgenden direkt verwenden.
gruesse_ausrichten()
Ich grüße Sie!
Und natürlich kann man sie in Programmverzweigungen und Schleifen einbauen.
for i in range(7):
gruesse_ausrichten()
Ich grüße Sie!
Ich grüße Sie!
Ich grüße Sie!
Ich grüße Sie!
Ich grüße Sie!
Ich grüße Sie!
Ich grüße Sie!
Mini-Übung
Schreiben Sie eine Funktion, die mit Turtle ein Rechteck zeichnet. Testen Sie Ihre Funktion auch.
Lösung
import ColabTurtlePlus.Turtle as turtle
turtle.clearscreen()
def zeichne_rechteck():
rechteck = turtle.Turtle()
for i in range(2):
rechteck.forward(100)
rechteck.left(90)
rechteck.forward(50)
rechteck.left(90)
zeichne_rechteck()
Das folgende Video zeigt Ihnen nochmal, wie in Python Funktionen definiert werden.