Coding for KidsCoding for Kids
Креативни НиваПредизвикателстваРъководство за Учители
Гласувайте за функции
Курс по усъвършенствано разработване с Python
Глава
>
Ниво

Разширени функции
Вложени функции

Цел

Събирайте, преразпределяйте и прибирайте плат, произведен от машините, като използвате вложени функции.

Понякога ще искате да вградите функции в други функции, за да разширите възможностите им. Те се наричат вложени функции или вътрешни функции и имат различни приложения – от създаването на прост, многократно използваем код вътре в една функция до защитата на вашите функции от външни манипулации.

В работилницата има няколко машини за производство на плат, някои имат плат, готов за съхранение, а други изискват нишка, за да завършат производството на плата. Всяка от тях има пред себе си килимче с цвят "red" или "green", което указва как трябва да се използва. В редактора на кода ще бъде написана функция, която ще ни позволи да управляваме машината и да събираме или поставяме материали от нея.

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

Функцията се нарича operate_machine и приема аргумент, наречен color. В зависимост от това на кое килимче, с цвят "red" или "green", е разположена машината, подаването на този аргумент ще промени работата на машината, позволявайки ви да поставяте или събирате елементи.

Вътре във функцията ще намерите две вложени функции, наречени collect_cloth() и place_thread(), използвани за целите, посочени в имената им. Липсват редове, необходими за изпълнение на действието им; в collect_cloth() добавете реда player.collect("cloth"), който е последван от player.speak("Quilt is ready for storage"), а в place_thread() добавете реда player.place("thread"), който е последван от player.speak("Machine needed more materials").

След като липсващите редове на кода бъдат добавени във вложените функции, отидете до светлата X-емблема пред кутията и вземете "thread", който ще се използва в машината, както следва: player.collect("thread").

Отидете до тъмните X-емблеми вътре в работилницата и използвайте потребителската функция operate_machine, докато сте обърнати към машините. Добавете като аргумент "red" или "green", в зависимост от това на кое килимче се намира X-емблемата, например: operate_machine("red"). Това ще ви позволи да поставите нишката и да съберете плата.

След като съберете целия плат, отидете до златната X-емблема до кутията отзад и използвайте функцията place() за съхранение на плата. Създайте променлива с име cloths, добавете в нея броя на събраните платове и я съхранете в кутията, за да завършите нивото, както следва: player.place(cloths).

Книга с Код