EINFÜHRUNG |
Du weisst bereits, wie man eine Funktion mit oder ohne Parameter definiert und sie aufruft. Aus der Mathematik weisst du wahrscheinlich, dass dort Funktionen etwas anders verstanden werden. Eine Funktion y = f(x) hat in der Mathe eine unabhängige Variable x. Zu jedem Wert von x liefert die Funktion einen Wert der abhängigen Variablen y. Ein Beispiel ist die quadratische Funktion
y = x2. Für x = 0, 1, 2, 3 ergeben sich die Quadratzahlen 0, 1, 4, 9. Auch in Python kann man Funktionen definieren, die einen Wert berechnen und diesen wie eine Variable "zurückgeben". |
DAS SCHLÜSSELWORT RETURN |
from gpanel import * makeGPanel(-25, 25, -25, 25) def squarenumber(a): b = a * a return b for x in range(-5, 6): y = squarenumber(x) if x == -5: move(x, y) else: draw(x, y) |
MEMO |
Mit return gibt eine Funktion einen Wert an den Aufrufer zurück und hört mit der weiteren Abarbeitung auf. Eine Funktion kann wie in der Mathematik nicht mehrere Werte zurückgeben [mehr...
Üblicherweise ist return die letzte Anweisung im Funktionsblock. Wie du gesehen hast, gibt es aber im Gegensatz zur Mathematik in der Informatik auch Funktionen, die keinen Wert zurückgeben, aber doch etwas bewirken. Funktionen können sogar beides tun, etwas bewirken und etwas zurückgeben [mehr...
Beim Aufruf einer solchen Funktion muss der zurückgegebene Wert nicht "abgeholt" Diese graphische Darstellung der Quadratfunktion ist noch nicht sehr schön. Neben dem fehlenden Koordinatensystem fällt auch der "eckige" Verlauf unangenehm auf, der darauf zurückzuführen ist, dass du die Funktion nur an wenigen ganzzahligen Stützpunkten berechnest, die du mit Geradenstücken verbindest. Hier zeigt sich eine wesentliche Schwäche der Informatik gegenüber der Mathematik: Obschon die Funktion für jeden Wert der x-Achse (für jede reelle Zahl) einen y-Wert liefert, können wir sie in der Informatik nur an endlich vielen Punkten berechnen. Wir sprechen davon, dass die kontinuierliche x-Achse in diskrete Punkte aufgelöst wird. |
DEZIMALZAHLEN (FLOATS) |
from gpanel import * makeGPanel(-6, 6, -3, 33) setColor("gray") drawGrid(-5, 5, 0, 30) def squarenumber(a): b = a * a return b setColor("blue") lineWidth(2) x = -5 while x < 5: y = squarenumber(x) if x == -5: move(x, y) else: draw(x, y) x = x + 0.01 |
MEMO |
In Python werden Dezimalzahlen float genannt. Im Unterschied zu den Dezimalzahlen in der Mathematik haben sie in der Informatik allerdings immer eine bestimmte (endliche) Ziffernzahl. In Python sind es rund 14 Ziffern (solche Zahlen werden in anderen Programmiersprachen double genannt.) Man kann in einem Computerprogramm beispielsweise die Zahl π, die ja ein unendlicher Dezimalbruch ist, nie genau angeben, sondern nur mit einem float auf rund 14 Ziffern genau. Falls du ein Koordinatengitter brauchst, so gehst du wie folgt vor:
|
AUFGABEN |
|