Einfacher Schneemann

In dieser Aktivität lernen Sie, wie Sie Funktionen, die Sie selbst erstellt haben, in Ihre eigene Bibliothek aufnehmen können (wir nennen Ihre Bibliothek Ihre "Toolbox", und Sie können sich die Funktionen als die Werkzeuge vorstellen, die Sie in Ihrer "Toolbox" sammeln und aufbewahren).

Eine Grafik beschreiben

Angenommen, Sie haben einen Freund, der die folgende Abbildung nicht sehen kann:

Schneemann

Haben Sie gerade gerade Olaf gesagt? Olaf, der Schneemann? Der Meister der Zersetzung und Komposition?

Woraus ist Olaf gemacht? Woraus ist ein Schneemann gemacht? Genauer gesagt, eine zweidimensionale, vereinfachte Grafik eines Schneemanns? Kreise! Mindestens zwei, einer über dem anderen!

Machen wir uns also auf den Weg und bereiten wir uns darauf vor, ein paar Kreise zu erstellen.

Definieren (oder Importieren!) einer Funktion zum bequemen Erstellen von Kreisen

Wir möchten eine Funktion verwenden, die auf einfache Weise einen Kreis erstellen kann. Wenn Sie die Aktivität "Kreise" bereits abgeschlossen haben, haben Sie eine solche Funktion kreis erstellt.

Aber wir brauchen diese Funktion hier. Und genau hier gibt es sie nicht. Was also tun?

Wir haben drei Möglichkeiten:

  1. Eine kreis-Funktion hier neu schreiben
  2. Kopieren Sie den Code, der eine kreis-Funktion definiert, die wir irgendwo anders geschrieben haben, und fügen Sie ihn hier ein.
  3. Seien Sie schlau

Sie sagten "seien Sie schlau", nicht wahr? Aber gleichzeitig dachten Sie, dass Option 2, Kopieren-Einfügen, das ist, was Sie tatsächlich tun würden, richtig?

Wir sind uns einig, Code umzuschreiben ist Arbeit. Und wir wollen nicht zweimal arbeiten müssen! Also fällt Option 1 aus.

Code-Klone sind SCHLECHT

Das Kopieren von Code ist viel weniger Arbeit! Aber es ist schlecht. Es ist eine Art von "Codegeruch". Das Einfügen von Code führt zu mehreren Kopien desselben Codes (auch bekannt als "Code-Klone"). Und wenn Ihr Code Code-Klone enthält, stinkt er! Er stinkt so sehr, dass andere Programmierer sich von Ihnen fernhalten werden!

Warum ist es schlecht, Code zu kopieren und einzufügen? Reduziert es nicht die Arbeit? Nun, auf den ersten Blick schon, aber auf lange Sicht verursacht es fast immer mehr Arbeit. Die Kosten für das Kopieren von Code können immens sein. Es kann so schlimm sein, dass Projekte scheitern, Systeme voller Fehler sind und Flugzeuge abstürzen.

Warum das? Nun, das ist eine gute Frage! Lassen Sie uns diesen Gedanken festhalten und eine gründlichere Diskussion auf eine spätere Aktivität verschieben. Fürs Erste nur kurz: Wenn Sie Ihren Code kopieren, erhalten Sie mehrere Klone. Wenn Sie einen Fehler im Original hatten, haben Sie nun mehrere Fehler (und wenn Sie einen finden, können Sie diesen beheben, aber verpassen's vielleicht ihn in allen Klonen zu beheben). Wenn Sie ausserdem die Funktionalität ändern oder Ihren Code bereinigen müssen, müssen Sie dies nun für jeden Klon tun. Und woher wissen Sie, wie viele Klone von welchen Teilen des Codes Sie im Laufe der Zeit erstellt haben? Das ist ein Albtraum. Tun Sie es einfach nicht!

Werkzeuge für Ihre Toolbox sammeln

Gehen wir also zurück zu der Stelle, an der Sie bereits eine kreis-Funktion implementiert haben. Das ist wahrscheinlich in der Aktivität PyTamaro iconKreise. Suchen Sie dort die Zelle, in der die kreis-Funktion definiert ist, und klicken Sie auf das kleine Toolbox-Symbol unten rechts.

SaveToToolboxButtonSurrounded.png

Es sollte ein Dialogfenster erscheinen, das Sie durch die Schritte führt, mit denen Sie die Funktion kreis zu Ihrer Toolbox hinzufügen. Sobald Sie diesen Vorgang abgeschlossen haben, kehren Sie hierher zurück, und Sie werden die Funktion kreis unter "Meine Toolbox" in der linken Seitenleiste sehen. Sie wird immer dort zu finden sein und Sie können sie in jeder beliebigen Aktivität verwenden.

Wenn Sie auf eine Ihrer Toolbox-Funktionen in der linken Seitenleiste klicken, erhalten Sie ein Popup-Fenster mit der Signatur Ihrer Funktion (die Parameter, die sie benötigt, der Rückgabewert, den sie erzeugt), mit einem Codebeispiel, das Sie ausführen können (eigentlich Ihr Codebeispiel, das Sie geschrieben haben, als Sie die Funktion in Ihre Toolbox aufgenommen haben), um zu verstehen (oder sich zu erinnern), was Ihre Funktion tut.

Werkzeuge aus der Toolbox verwenden

Jetzt importieren wir die Funktion kreis und zeichnen einen gelben Kreis:

Loading...

Bauen wir einen Schneemann

Lassen Sie uns eine Funktion definieren, die einen Schneemann erzeugen kann. Wir wollen, dass sie einigermaßen flexibel ist: Es sollte möglich sein, den Durchmesser des Kopfes und des Körpers zu bestimmen.

Implementieren Sie die Funktion schneemann, indem Sie die Funktion kreis aufrufen, die Sie oben importiert haben. Nehmen Sie an, dass in unserer Welt der Schnee sehr sauber ist, also werden Schneemänner in reinem weiss erstellt.

Loading...

Wenn alles gut funktioniert, sollten Sie einen weissen Schneemann auf einem fast weissen Hintergrund sehen. Können Sie ihn kaum sehen? Wenn Sie mit der Maus über den weißen Bereich fahren, verwandelt sich der Hintergrund hinter dem Schneemann in ein graues Schachbrettmuster. Auf diese Weise sollte sich Ihr Schneemann etwas mehr abheben.

Staubiger Schnee

Wussten Sie, dass in der Schweiz und in ganz Europa der Schnee manchmal gelblich oder sogar rötlich wird? Das liegt an dem Staub, der von der Sahara in Afrika über das Mittelmeer bis in die Alpen geweht wird! Schauen wir uns an, wie unser Schneemann aussieht, nachdem er mit ein bisschen Saharastaub bedeckt wurde.

Ändern Sie die obige Code-Zelle:

  • Importieren Sie die Funktion rgb_farbe.
  • Definieren Sie einen Namen schneefarbe und weisen Sie ihm eine orangefarbene Farbe zu, die Sie selbst erstellen (z.B. mit rgb_farbe(255, 245, 210))
  • Ersetzen Sie die Verwendung des Namens weiss durch schneefarbe.
  • Entfernen Sie weiss aus den importierten Namen

Um die Farbe des Schneemanns zu ändern, müssen Sie die Funktion schneemann ändern. Und warum? Weil die Funktion schneemann keinen Parameter hat, mit dem man die Farbe des Schneemanns angeben kann. Als wir die Funktion ursprünglich entwickelten, gingen wir davon aus, dass der Schnee immer perfekt weiss sein würde. Wir haben nicht damit gerechnet, dass Wüstensandstaub von einem Kontinent zum anderen geweht wird und den weissen Schnee verfärbt.

Wenn wir eine Funktion erstellen, müssen wir entscheiden, was konstant und was variabel ist: Für die variablen Aspekte wollen wir Parameter einführen, damit jeder, der unsere Funktion später aufruft, die gewünschten Werte angeben kann.

Für unseren Schneemann wollen wir die Farbe des Schnees konstant halten.

Innerhalb einer Funktion Namen definieren

Sie haben vielleicht bemerkt, dass wir innerhalb unserer Funktion schneemann zwei Namen definiert haben, die sich auf den Kopf und den Körper beziehen. Dies ermöglichte es uns, den recht lesbaren Ausdruck ueber(kopf, koerper) zu schreiben, um unseren Schneemann aus den beiden Kreisen zusammenzusetzen, die unter diesen Namen bekannt sind.

Diese beiden Namen sind lokal zu unserer Funktion schneemann. Code, der sich ausserhalb der Funktion befindet, wird nie wissen, dass die beiden Namen existieren. Code ausserhalb der Funktion schneemann sollte sich nicht um die Tatsache, dass ein Schneemann aus einem kopf und einem koerper zusammengesetzt wurde, kümmern müssen.

Ist unser Schneemann es wert, wiederverwendet zu werden?

Wenn Sie möchten, können Sie Ihre Funktion schneemann auch in der Toolbox speichern. Klicken Sie einfach auf die Schaltfläche "Toolbox" am unteren Rand der obigen Codezelle. Vielleicht möchten Sie das aber nicht tun. Und warum? Ist diese schneemann-Funktion wirklich einen Platz in Ihrer Toolbox wert? Werden Sie sie wirklich woanders wiederverwenden? Ist sie nicht ein bisschen zu spezialisiert? Wenn Sie eine Art Winterlandschaft mit Schneebällen, Schneemännern, Schlitten, Skiern und Snowboards erstellen wollen, wäre diese spezielle Funktion schneemann dann etwas, das Sie aufrufen würden? Wenn ja, dann legen Sie sie in Ihre Toolbox (Sie können sie später immer noch entfernen). Wenn nein, halten Sie Ihre Toolbox klein und übersichtlich und reservieren Sie diese für allgemein nützlichere Funktionen (z. B. eine Funktion zum Erstellen eines Quadrats).

Was Sie gelernt haben

Sie haben einen einfachen Schneemann gebaut, indem Sie zwei Kreise übereinander gelegt haben.

Viel wichtiger aber ist, dass Sie gelernt haben, wie Sie Ihre eigene Bibliothek erstellen und benutzen! Ihre Toolbox.

Auch wenn es Spass macht, viele Werkzeuge zu sammeln, nur um die eigene Sammlung zu vergrössern (sammeln Sie Briefmarken? Schuhe? Autos? Kleidung? Flugzeuge?), ist Ihre Toolbox nicht nur ein Statussymbol!

Ihre Toolbox ist nützlich und wird Ihr Leben in Zukunft sehr viel einfacher machen! Und warum? Weil Sie jede Funktion aus Ihrer Toolbox importieren und überall dort einsetzen können, wo Sie es möchten! Alles, was Sie brauchen, ist der Zugang zu Ihrer Toolbox. Und innerhalb dieser Website haben Sie immer Zugriff auf Ihre Toolbox! Und wenn Sie sie ausserhalb dieser Website verwenden möchten, können Sie einfach eine Aktivität als Python-Datei exportieren, und Ihre Toolbox wird in Ihrem Download enthalten sein.


This activity has been created by LuCE Research Lab and is licensed under CC BY-SA 4.0.

Einfacher Schneemann

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 00758c3 (Sat, 19 Apr 2025 07:38:57 GMT)