Ein Unterprogramm stellt einen wiederverwendbaren Code-Block dar. Dieses kann durch übergebene Argumente mit verschiedenen Situationen umgehen. Zudem kann es einen Wert berechnen und diesen als Rückgabewert zurückliefern.
Rückgabewerte weiterverwenden
Gewisse Unterprogramme berechnen etwas und liefern den Wert zurück. Bei den Turtle-Unterprogrammen gibt es auch solche. Mit ihnen lässt sich der momentane Zustand der Turtle abfragen.
turtle.shape("classic")- setze die Form der Turtle auf ein Dreieck. Liefert keinen Wert zurück.
turtle.shape()- fragt die Turtle welche Form aktiv ist und liefert diese als Rückgabewert zurück.
turtle.shape('turtle') # setzt den Turtle-Typ auf "turtle"
print(turtle.shape()) # gibt in der Shell "turtle" aus
turtle.shape('classic') # setzt den Turtle-Typ auf "classic"
print(turtle.shape()) # gibt in der Shell "classic" ausWeitere Unterprogramme mit Rückgabewert sind position() (liefert Koordinaten als Vec2D) oder heading() (liefert den momentanen Winkel der Turtle als Zahl).
Rückgabewert zurückliefern
Unsere selbst definierten Unterprogramme haben die Turtle herumfahren lassen. Häufig werden Unterprogramme aber verwendet um etwas zu Berechnen. Der berechnete Wert wird dann zurückgeliefert und kann vom aufrufenden Programm weiterverwendet werden.
Wir könnten z.B. berechnen, wie weit die Turtle von ihrem Ausgangspunkt entfernt ist. Da die Turtle beim Punkt (0,0) startet, können wir die Berechnung einfach mit Pythagoras machen. Mit den aktuellen Koordinaten der Turtle
Diesen berechneten Wert soll dann weiterverwendet werden können:
distanz mit RückgabewertDas Unterprogramm zur Berechnung der Quadratwurzel finden wir im math-Modul.
import turtle, math
def distanz():
x,y = turtle.pos()
d = math.sqrt(x*x + y*y)
return d
turtle.left(30)
turtle.forward(100)
turtle.left(160)
turtle.forward(50)
strecke = distanz() # Funktion aufrufen und Wert merken
print(strecke) # Wert ausgeben
turtle.left(39) # etwa in Richtung Start ausrichten
turtle.forward(strecke) # zum Start zurückfahren
turtle.done()