Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå

Avancerade funktioner
Nestlade funktioner

Mål

Samla in, omfördela och stuva undan tyg som producerats av maskinerna med hjälp av inbäddade funktioner.

Ibland vill du placera funktioner inuti andra funktioner för att utöka deras funktionalitet. Dessa kallas Nestade funktioner eller inre funktioner, och de har olika användningsområden, från att skapa enkel återanvändbar kod inuti en funktion till att skydda dina funktioner från extern manipulation.

Inuti verkstaden finns det flera tygproducerande maskiner, vissa har tyg som är redo för förvaring, andra behöver tråd för att slutföra produktionen av tyget. Varje maskin har antingen en "red" eller "green" matta framför sig, vilken visar hur den används. I kodredigeraren kommer en funktion att skrivas som låter oss köra maskinen och antingen samla in eller lägga material från maskinen.

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

Funktionen heter operate_machine och tar ett argument med namnet color. Beroende på vilken färgad matta maskinen har framför sig, att ange antingen "red" eller "green" som argument kommer att ändra maskinens funktion så att du kan antingen placera material eller samla in dem.

Inuti funktionen hittar du två Nestade funktioner, med namnen collect_cloth() och place_thread(), som används för de syften som anges i deras namn. De saknar de rader som krävs för att utföra sina handlingar; i collect_cloth() lägg till raden player.collect("cloth"), som följs av player.speak("Quilt is ready for storage") och i place_thread() lägg till raden player.place("thread") som följs av player.speak("Machine needed more materials").

När de saknade kodraderna har lagts till i de Nestade funktionerna, gå till det ljusa X-märket framför lådan och samla in "thread" som ska användas i maskinen, på detta sätt: player.collect("thread").

Gå till de mörka X-märkena inne i verkstaden och använd den anpassade funktionen operate_machine medan du står framför maskinerna. Lägg till antingen "red" eller "green" som argument beroende på den färgade mattan där X-märket är placerat, till exempel: operate_machine("red"). Detta kommer att låta dig placera tråden och samla in tyget.

När du har samlat in allt tyg, gå till det gyllene X-märket bredvid lådan längst bak och använd funktionen place() för att lagra tyget. Skapa en variabel med namnet cloths, lägg till antalet tyg du har samlat in och lagra den i lådan för att slutföra nivån, på detta sätt: player.place(cloths).

Kodbok