Skip to content

Rückgabewerte

Programmieren

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.
python
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" aus

Weitere 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 (x,y) lässt sich die Distanz d wie folgt berechnen:

d=x2y2

Diesen berechneten Wert soll dann weiterverwendet werden können:

Definition (links) und Aufruf (rechts) der Funktion distanz mit Rückgabewert

Das Unterprogramm zur Berechnung der Quadratwurzel finden wir im math-Modul.

python
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()

Gymnasium Kirchenfeld, fts