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).
Angenommen, Sie haben einen Freund, der die folgende Abbildung nicht sehen kann:
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.
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:
kreis
-Funktion hier neu schreibenkreis
-Funktion definiert, die wir irgendwo anders geschrieben haben, und fügen Sie ihn hier ein.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.
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!
Gehen wir also zurück zu der Stelle, an der Sie bereits eine kreis
-Funktion implementiert haben.
Das ist wahrscheinlich in der Aktivität
Kreise.
Suchen Sie dort die Zelle, in der die
kreis
-Funktion definiert ist, und klicken Sie auf das kleine Toolbox-Symbol unten rechts.
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.
Jetzt importieren wir die Funktion kreis
und zeichnen einen gelben Kreis:
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.
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.
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:
schneefarbe
und weisen Sie ihm eine orangefarbene Farbe zu, die Sie selbst erstellen (z.B. mit rgb_farbe(255, 245, 210)
)weiss
durch schneefarbe
.weiss
aus den importierten NamenUm 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.
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.
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).
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
PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI
Privacy Policy • Platform Version 00758c3 (Sat, 19 Apr 2025 07:38:57 GMT)