Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

Fortgeschrittene Funktionen
Verschachtelte Funktionen

Ziel

Sammle, verteile und räume den von den Maschinen produzierten Stoff ein, indem du geschachtelte Funktionen benutzt.

Manchmal möchtest du Funktionen in andere Funktionen einbetten, um die Fähigkeiten dieser Funktion zu erweitern. Diese werden als Geschachtelte Funktionen oder innere Funktionen bezeichnet und haben verschiedene Verwendungszwecke – von der Erstellung einfach wiederverwendbaren Codes innerhalb einer Funktion bis hin zum Schutz deiner Funktionen vor äußerer Beeinflussung.

Im Workshop gibt es mehrere Stoffherstellungsmaschinen; einige besitzen Stoff, der bereit zur Lagerung ist, andere benötigen Faden, um die Stoffproduktion abzuschließen. Jede Maschine hat entweder einen "red" oder "green" Teppich davor, der ihre Verwendung vorgibt. Im Code-Editor wird eine Funktion geschrieben, die uns erlaubt, die Maschine zu bedienen und entweder Materialien von der Maschine zu sammeln oder dort abzulegen.

def operate_machine(color): def collect_cloth(): # Collect Code player.speak("Cloth is ready for storage") def place_thread(): # Place Code player.speak("Machine needed more materials") if color == "green": collect_cloth() if color == "red": place_thread()

Die Funktion heißt operate_machine und nimmt einen Parameter namens color entgegen. Abhängig davon, vor welchem farbigen Teppich die Maschine steht, verändert das Übergeben von entweder "red" oder "green" als Argument den Betrieb der Maschine, sodass du entweder Materialien ablegen oder sammeln kannst.

Innerhalb der Funktion findest du zwei Geschachtelte Funktionen, genannt collect_cloth() und place_thread(), die für die in ihren Namen beschriebenen Zwecke verwendet werden. Es fehlen Zeilen, die notwendig sind, um ihre jeweilige Aktion auszuführen: Füge in collect_cloth() die Zeile player.collect("cloth") hinzu, gefolgt von player.speak("Quilt is ready for storage"), und in place_thread() füge die Zeile player.place("thread") hinzu, gefolgt von player.speak("Machine needed more materials").

Sobald die fehlenden Zeilen in die Geschachtelten Funktionen eingefügt wurden, gehe zum hellen X-Zeichen vor der Kiste und sammle "thread", um ihn in der Maschine zu verwenden, zum Beispiel so: player.collect("thread").

Gehe zu den dunklen X-Zeichen im Workshop und benutze die benutzerdefinierte Funktion operate_machine, während du den Maschinen zugewandt bist. Füge als Argument entweder "red" oder "green" hinzu, abhängig von der Farbe des Teppichs, auf dem sich das X-Zeichen befindet, zum Beispiel: operate_machine("red"). Dies ermöglicht es dir, den Faden abzulegen und den Stoff zu sammeln.

Sobald du den gesamten Stoff gesammelt hast, gehe zum goldenen X-Zeichen neben der Kiste im hinteren Bereich und benutze die Funktion place(), um den Stoff einzulagern. Erstelle eine Variable namens cloths, füge die Anzahl der gesammelten Stoffe hinzu und lagere sie in der Kiste, um das Level abzuschließen, zum Beispiel: player.place(cloths).

Codebuch