Angenommen du möchtest einen ganz einfachen Schneemann aus zwei weissen, übereinander liegenden Kreisen zeichnen, dann erinnerst du dich an eben definierte Kreis
-Funktion.
Code kopieren ist weniger Aufwand als ihn erneut zu schreiben, ABER das ist schlecht. Obwohl das Copy-Pasting von Code zu Beginn den Anschein hat, Arbeit zu reduzieren, generiert es längerfristig mehr. Warum? Nun, das ist eine gute Frage.
Kurz gesagt: Wenn du Code kopierst, hast du am Ende viele Klone. Wenn du im ersten Code einen Fehler hattest, dann ist er nun in jeder Kopie und du musst ihn überall beheben. Oder du möchtest deinen Code verbessern und musst dies wiederum in all deinen Code-Klonen einzeln tun. Das ist mühsam... Machs also nicht!
Aber Sie, wie kann ich dann trotzdem Zeit und mühseliges Coden einsparen?
Entweder:
Für den Moment und diese Webseite üblich:
Speichere deine Funktion gemäss nachfolgender Anleitung in der Toolbox
(Werkzeugbox) ab. Anschliessend kannst du sie in die neue Codezelle aus der Toolbox importieren.
Lies die gesamte Anleitung durch, bevor du mit der Ausführung startest.
Klicke in der untenstehenden Code-Zelle ganz unten rechts auf das Werkzeugsymbol.
Ein Fenster geht auf:
a. Wähle im Dropdown-Menu den Namen 'kreis' an.
b. Erläutere im grauen Feld rechts davon, was die Funktion tut.
Unter Beispiel zur Verwendung Deiner Funktion schreibst du den nötigen import aus Pytamaro und eine Ausgabe und Aufruf deiner Funktion. Z.B. 'zeige_grafik(kreis(100, gruen))
Führe die Code-Zelle aus und speichere deine Funktion in der Toolbox ab.
Für die Codezelle, in der du die kreis
-Funktion brauchen möchtest, schreibst du eine import-Zeile:
from toolbox import kreis
from toolbox import kreis
from pytamaro.de import ellipse, neben, schwarz, gruen, cyan, zeige_grafik
meine_kreise = neben(kreis(100, cyan), kreis(90, schwarz))
zeige_grafik(meine_kreise)
from pytamaro.de import ueber, weiss, zeige_grafik
from toolbox import kreis
def Schneemann(kopfdurchmesser, körperdurchmesser):
kopf = kreis(kopfdurchmesser, weiss)
körper = kreis(körperdurchmesser, weiss)
return ueber(kopf, körper)
zeige_grafik(Schneemann(100, 150))
from pytamaro.de import ueber, weiss, gelb, zeige_grafik
from toolbox import kreis
def Schneemann(kopfdurchmesser, körperdurchmesser, farbe):
kopf = kreis(kopfdurchmesser, farbe)
körper = kreis(körperdurchmesser, farbe)
return ueber(kopf, körper)
zeige_grafik(Schneemann(100, 150, gelb))
Du hast wahrscheinlich gemerkt, dass in den Funktionen jeweils zwei Namen definiert wurden, die sich auf den Kopf und den Körper des Schneemanns beziehen. Dies erlaubt uns, den sehr leserlichen und verständlichen Ausdruck (engl. expression) ueber(kopf, körper) zu schreiben und gleichzeitig begreifen wir, aus welchen Bestandteilen der Schneemann zusammengesetzt ist.
Diese zwei Namen sind lokal, also nur in der Schneemann-Funktion zu sehen. Ausserhalb der Funktion existieren sie nicht. Code ausserhalb der Funktion soll sich nicht darum scheren, dass ein Schneemann aus einem Kopf und einem Körper besteht.
Du hast einen einfachen Schneemann "komponiert" (zusammengesetzt), indem du zwei Kreise mit der Funktion `ueber()`` zusammengefügt hast.
Mit den zwei Übungen hast du zudem wichtige Konzepte angetroffen:
Naming
: gute Namen zu wählen ist wichtig fürs Verständnis von Code.Composition / Decomposition
: In der Programmierung ist es relevant, ein Problem bzw. eine Aufgabenstellung in seine Teilprobleme zu zerlegen (de-compose) und über Teillösungen wieder zu einem ganzen zusammenzufügen (compose).Die Grafikbibliothek enthält wie gesagt vordefinierte Funktionen. Für dich relevant sind im Folgenden diese hier:
Fahre mit dem Cursor über die hier in rot hinterlegten Funktionen. neben, ueber oder ueberlagere
Die Funktionen sind auch unter der API-Documentation https://pytamaro.si.usi.ch/documentation/pytamaro.de aufgelistet.
decompose
) die gewünschte Grafik im Kopf in seine Einzelteile (möglichst in solche, die mit den oben genannten Funktionen zeichenbar sind).statement
klebst du die Einzelteile aneinander.zeige_grafik()
, um das Haus in der Ausgabezelle (Konsole) anzuzeigen (und nicht einfach nur unsichtbar im Computer irgendwo zu existieren).kreis
. Beispielsweise kannst du einen Hammer aus zwei Rechtecken konstruieren, oder ein Auge (mindestens Pupille und Regenbogenhaut) oder ein Blumenköpfchen - schon etwas schwieriger.This activity has been created by Bernhard and is licensed under CC BY-SA 4.0.
It is derived from this activity.
Codeduplikationen vermeiden
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 667200c (Sun, 05 Oct 2025 00:25:30 GMT)