In dieser Aktivität werden Sie die grundlegende Begriffe rund ums Programmieren mit PyTamaro und insbesondere das Konzept der Konstanten nochmals repetieren.
Stellen Sie sich folgendes Szenario vor: Im Fach bildnerisches Gestalten hatten Sie den Auftrag erhalten, einen Flyer zu gestalten, auf dem Sie Ihre Lieblingssüssigkeit präsentieren. Da Sie vor kurzem gelernt haben zu programmieren, hat eine Ihrer Mitschülerinnen den folgenden Flyer aus lauter Konstanten erstellt:
Sie möchten selbst gerne eine solche Stängelglace für den Text "love" programmieren, doch wie war das schon wieder mit dem Programmieren in PyTamaro? Machen wir einen kleinen Exkurs, bevor wir wieder zur Glace zurückkehren.
Als Grundbausteine stehen uns folgedene primitven Grafiken aus der PyTamaro-Bibliothek zur Verfügung: rectangle, circular_sector, triangle, ellipse, und text.
Tipp: Wenn Sie mit dem Cursor auf die einzelnen primitiven Grafiken klicken, erscheint Ihnen die Kurzansicht der API (application programming interface), anhand welcher Sie wissen, wie Sie die jeweiligen primitiven Grafiken korrekt implementieren müssen und was deren grafischer Output ist:
Damit Sie aber überhaupt Zugriff auf die Grafiken, Kombinatoren etc. haben, müssen Sie in der ersten Zeile stets den import-Befehl korrekt schreiben.
from pytamaro import* #für den Import der ganzen PyTamaro-Bibliothek
from pytamaro import rectangle, above, show_grafic #für den spezifischen Import der verwendeten Komponenten
Für ein bewussteres Programmieren (wo kommen die Attribute überhaupt her?) und für eine grössere Auswahl bei der eigenen Namensgebung (evt. ist ein gewünschter Name nämlich bereits für etwas in der Bibliothek vergeben), empfiehlt es sich, nicht die ganze Bibliothek, sondern nur die für das Programm notwendigen Attribute zu importieren.
#um die Imports so einzurücken, müssen diese zwischen Klammern stehen
from pytamaro import (above, rotate, compose, pin, top_right, top_center,
center_left, bottom_left, bottom_right, rectangle,
triangle, ellipse, black, red, white, yellow, show_graphic)
Wie oft im Unterricht gesehen und bereits oben erwähnt, kann man auch mit einem einzigen import-Befehl die ganze Bibliothek importieren.
from pytamaro import*
Wie im Unterricht thematisiert, verwenden wir Konstanten, wenn eine Grafik oder ein Attribut (wie z.B. die Farbe blue) nur einmalig verwendet wird oder diese zwar öfter gebraucht wird, sie sich aber z.B. in Form und/oder Farbe nicht verändert.
In Bezug auf die Konstanten haben wir die Metapher mit den magischen Kisten angeschaut: Bei der Erstellung einer Konstanten (z.B. blume
) können wir uns eine Kiste vorstellen, welche mit dem Namen der entsprechenden Konstanten beschriftet ist und aus der wir unendlich oft eine Grafik der exakt gleichen Blume herausholen können:
Im Unterricht haben wir diesbezüglich auch das Synonym Variablen eingeführt. Dies weil die oben aufgeführte Erklärung von Konstanten nicht ganz abschliessend ist. Denn wir haben gesehen, dass wir im Programmieren die Möglichkeit haben Konstanten im Laufe des Programms zu verändern, indem wir entweder direkt den entsprechenden Code verändern oder die Konstante, wie im folgenden Beispiel, überschreiben (gleicher Name, aber ein neuer Code wird darin gespeichert):
blume = beside(
circular_sector(20, 360, magenta),
circular_sector(20, 360, magenta)
)
blume = overlay(
blume,
rotate(90, blume)
)
blume = overlay(
circular_sector(15, 360, yellow),
blume
)
Somit liegen zu Beginn in der Kiste blume
nur die Blütenblätter und am Schluss die fertige Blume. Die vorherigen Inhalte werden nicht mehr gebraucht und können mit dem Namen blume
nicht mehr aufgerufen werden.
Nun kann man zwar erneut unendlich oft eine dieser definierten Blumen aus der Kiste herausnehmen, jedoch sind sie wieder alle identisch, also konstant.
from pytamaro import (beside, above, rotate,
circular_sector, rectangle,
rgb_color, show_graphic)
SCHOKOLADEN_BRAUN = rgb_color(150,75,0)
STAENGEL_BRAUN = rgb_color(255, 192, 128)
ERDBEER_ROT = rgb_color(255, 128,128)
sichtbare_glace= beside(
rotate(180, circular_sector(20, 90, ERDBEER_ROT)),
beside(
rectangle(60, 20, ERDBEER_ROT),
rotate(-90, circular_sector(20, 90, ERDBEER_ROT))
)
)
schokoladen_ueberzug = above(
above(
circular_sector(60 , 180, SCHOKOLADEN_BRAUN),
rectangle(120, 180, SCHOKOLADEN_BRAUN)
),
sichtbare_glace
)
staengel = above(
rectangle(20, 60, STAENGEL_BRAUN),
rotate(180,circular_sector(10, 180, STAENGEL_BRAUN))
)
staengelglace_komplett = above(
schokoladen_ueberzug,
staengel
)
Wunderbar, Sie haben erfolgreiche eine Erdbeer-Stängelglace programmiert!
Von dieser Stängelglace existieren jedoch noch viele weitere Geschmackssorten (z.B. Schokolade, Vanille, Caramel, etc.), welche wir in einem späteren Schritt gerne möglichst ressourcensparend programmieren möchten.
Doch hierfür ist es wichtig, zuvor noch bei den Konstanten zu bleiben und die Codeduplikation als Phänomen von Konstanten zu betrachten.
Im obigen Beispiel haben wir gesehen, dass die beiden Codefragmente für zwei der Labellos bis auf die Farbe des Labellos sowie dessen Schriftzug identisch sind.
Solche Codeduplikation soll wenn möglich vermieden werden, weil wir einerseits unnötige Speicherkapazität brauchen, aber hauptsächlich weil die Übersichtlichkeit des Programms leidet, da wir viel gleichen Code haben. Um dies zu umgehen, haben wir gelernt, solche Konstanten als Funktionen zu schreiben, was in der nächsten Aktivität ausführlicher angeschaut wird.
Sie haben in dieser Aktivität...
blume
gesehen und anschliessend eigene Konstanten geschrieben.This activity has been created by Schnider and is licensed under CC BY-SA 4.0.
Repetition Konstanten
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version a71e35c (Mon, 25 Aug 2025 18:25:55 GMT)