DU LERNST HIER... |
wie du eine Funktion definierst, der du Parameterwerte übergeben kannst. Du kennst dies bereits von vielen Turtlebefehlen. Wenn du beispielsweise forward(100) schreibst, erhält die Funktion forward() den Wert 100 und bewegt anschliessend die Turtle gemäss dieser Schrittweite vorwärts. |
MUSTERBEISPIELE |
Im Kapitel 5 hast du eine Funktion square() definiert, die ein Quadrat mit fixer Seitenlänge 100 zeichnet. Man sagt anschaulich, dass die Seitenlänge 100 im Programm "fest verdrahtet" sei.
from gturtle import * def square(s): repeat(4): forward(s) left(90) makeTurtle() setPenColor("red") square(80) left(180) setPenColor("green") square(50)
from gturtle import * def polygon(n, c): w = 360 / n setPenColor(c) repeat n: forward(100) left(w) makeTurtle() setPos(-50, -200) setPenWidth(3) right(90) polygon(3, "red") polygon(4, "green") polygon(5, "blue") polygon(6, "magenta") polygon(8, "cyan") polygon(10, "black") |
MERKE DIR... |
Eine Funktion kann einen oder mehrere Parameter haben. Die Werte der Parameter werden beim Funktionsaufruf festgelegt.
|
ZUM SELBST LÖSEN |
|
Statt von Parameter wird auch vielfach von Argumenten gesprochen. Die beiden Begriffe sind synonym und es ist daher Geschmackssache, welchen Namen man vorzieht. In diesem Lehrgang wird konsequent die Bezeichnung Parameter verwendet.
Die Parametrisierung von Funktionen ist für das modulare Programmierer von grosser Wichtigkeit, denn damit erhalten die Funktionen erst die Flexibilität, sich "anpasst" zu verhalten. Neben der Parameterübergabe gibt es auch noch die Möglichkeit, dass Funktionen globale Variablen verwenden, um ihr Verhalten anzupassen. Wegen möglichen Seiteneffekten ist aber die Verwendung von Parameter fast immer vorzuziehen.
Speziell in Python ist die Möglichkeit sogenannte "benannte Parameter" zu verwenden. Man verwendet in der Funktionsdefinition beliebige Parameternamen. Beim Aufruf werden den Parametern die Werte mit Namen zugeordnet, z.B. color = "red". Die Reihenfolge der aufgerufenen Parameter spiel hier keine Rolle.
from gturtle import * def polygon(number, color): w = 360 / number setPenColor(color) repeat number: forward(100) left(w) makeTurtle() setPenWidth(3) right(90) setPos(-50, -200) polygon(color = "red", number = 3) polygon(color = "green", number = 4) polygon(number = 5, color = "blue")
Es kann nicht genügend betont werden, wie wichtig das hier angewendete Verfahren ist, um eine bestehende Bibliothek zu erweitern. Lagert man die zusätzlichen Funktionen in ein eigenes Modul, beispielsweise unter dem Namen zturtle aus, so stehen sie nachfolgend mit
from zturtle import *
als eigene Turtlebibliothek zur Verfügung, die so auch weitergegeben werden kann.
Die Erweiterung von bestehenden Funktionalitäten ist auch zentraler Gegenstand der Objektorientierten Programmierung (OOP).
Du kannst die Grösse des Turtle-Fensters ändern:
Willst du z.B. ein quadratisches Fenster, so wählst du Manuell (600, 600). Du musst danach TigerJython neu starten. Die Einstellung wird gespeichert und dein Turtle-Fenster hat beim nächsten Start von TigerJython die eingestellte Grösse. Du kannst auch die Standardwerte der Stift-, Turtle- und Hintergrundfarbe verändern. |