Coding for KidsCoding for Kids
Poziomy KreatywneWyzwaniaPrzewodnik dla Nauczycieli
Głosuj na funkcje
Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom

Zaawansowane Funkcje
Funkcje zagnieżdżone

Cel

Zbieraj, redystrybuuj i odkładaj tkaninę wyprodukowaną przez maszyny, używając funkcji zagnieżdżonych.

Czasami będziesz chciał umieścić funkcje wewnątrz innych funkcji, aby poszerzyć ich możliwości. Nazywamy je funkcjami zagnieżdżonymi lub funkcjami wewnętrznymi; mają różne zastosowania, od tworzenia prostego, wielokrotnego użytku kodu wewnątrz funkcji, po ochronę funkcji przed zewnętrzną ingerencją.

W warsztacie znajduje się kilka maszyn produkujących tkaninę; niektóre z nich mają tkaninę gotową do przechowania, inne wymagają nici, aby zakończyć produkcję tkaniny. Każda z nich ma przed sobą dywanik o kolorze "red" lub "green" lub zielony dywanik, który wskazuje jej przeznaczenie. W edytorze kodu zostanie napisana funkcja, która pozwoli nam obsługiwać maszynę i zbierać lub umieszczać materiały z maszyny.

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

Funkcja nazywa się operate_machine i przyjmuje argument o nazwie color. W zależności od koloru dywanika przed maszyną, podanie argumentu "red" lub "green" zmieni działanie maszyny, pozwalając ci na umieszczenie lub zebranie przedmiotów.

Wewnątrz funkcji znajdziesz dwie funkcje zagnieżdżone, o nazwach collect_cloth() i place_thread(), używane do celów określonych przez ich nazwy. Brakuje w nich linii niezbędnych do wykonania ich działania: w collect_cloth() dodaj linię player.collect("cloth"), po której następuje player.speak("Quilt is ready for storage"), a w place_thread() dodaj linię player.place("thread"), po której następuje player.speak("Machine needed more materials").

Gdy brakujące linie kodu zostaną dodane do funkcji zagnieżdżonych, udaj się do jasnego znaku X przed skrzynią i zbierz "thread", aby użyć go w maszynie, na przykład tak: player.collect("thread").

Następnie udaj się do ciemnych znaków X wewnątrz warsztatu i użyj niestandardowej funkcji operate_machine, stając naprzeciw maszyn. Dodaj jako argument "red" lub "green", w zależności od koloru dywanika, na którym znajduje się znak X, na przykład: operate_machine("red"). Pozwoli ci to umieścić nić i zebrać tkaninę.

Gdy zbierzesz całą tkaninę, udaj się do złotego znaku X obok skrzyni z tyłu i użyj funkcji place(), aby przechować tkaninę. Utwórz zmienną o nazwie cloths, dodaj do niej liczbę zebranych tkanin i umieść je w skrzyni, aby ukończyć poziom, na przykład tak: player.place(cloths).

Księga Kodów