Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Pokročilé funkce
Vnořené funkce

Cíl

Sbírej, redistribuuj a ulož látku vyrobenou stroji pomocí vnořených funkcí.

Někdy budete chtít vložit funkce do jiných funkcí, abyste rozšířili možnosti té funkce. Tyto se nazývají vnořené funkce nebo vnitřní funkce, mají různé využití, od vytváření jednoduchého opakovaně použitelného kódu uvnitř funkce až po ochranu vašich funkcí před vnější manipulací.

Uvnitř dílny se nachází několik strojů na výrobu látek, některé mají látku připravenou k uložení, jiné vyžadují nit k dokončení výroby látky. Každý z nich má před sebou buď "red" nebo "green" koberec, který vymezuje, jak bude používán. V editoru kódu bude napsána funkce, která nám umožní ovládat stroj a buď sbírat, nebo umísťovat materiály ze stroje.

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()

Funkce se jmenuje operate_machine a přijímá argument s názvem color. V závislosti na tom, jaký barevný koberec je před strojem, zadáním buď "red" nebo "green" jako argumentu se změní operace stroje, což vám umožní buď umístit, nebo sbírat položky.

Uvnitř funkce naleznete dvě vnořené funkce, nazvané collect_cloth() a place_thread(), které jsou určeny pro činnosti, jak naznačují jejich názvy. Chybí v nich řádky potřebné k vykonání jejich akce, u collect_cloth() přidejte řádek player.collect("cloth"), který je následován player.speak("Quilt is ready for storage") a u place_thread() přidejte řádek player.place("thread"), který je následován player.speak("Machine needed more materials").

Jakmile byly chybějící řádky kódu přidány do vnořených funkcí, jděte ke světlému X označenému před bednou a seberte "thread", které bude použito ve stroji, například takto: player.collect("thread").

Poté jděte k tmavým X značkám uvnitř dílny a použijte vlastní funkci operate_machine při pohledu na stroje. Jako argument přidejte buď "red" nebo "green", v závislosti na barvě koberce, na kterém se X značka nachází, například: operate_machine("red"). Toto vám umožní umístit nit a sebrat látku.

Jakmile sesbíráte veškerou látku, jděte ke zlatému X označení vedle bedny vzadu a použijte funkci place() k uložení látky. Vytvořte proměnnou nazvanou cloths, přidejte do ní počet sesbíraných látek a uložte ji do bedny, abyste dokončili úroveň, například takto: player.place(cloths).

Kniha Kódu