Kurs Rozwoju w Pythonie
Rozdział
>
Poziom

Korzystanie ze słowników
Iterowanie po słownikach

Cel

Odzyskaj wszystkie materiały w terenie i przeprowadź inwentaryzację wszystkich zebranych przedmiotów zanim schowasz je do odpowiednich pojemników.

Burza zniszczyła posterunek przy moście, rozrzucając materiały wszędzie. Jestem pewien, że te materiały mogą się później przydać. Przeprowadź inwentaryzację każdego z przedmiotów, które podnosisz i umieść je w magazynie po drugiej stronie mostu.

Najpierw zbierz wszystkie rozrzucone na polu szczątki, tj.: "branches", "boulders" i "planks". Gdy już zbierzesz wszystkie przedmioty, umieść je w słowniku o nazwie materials i dodaj wszystkie trzy (3) nazwy materiałów i ich ilości do jego wnętrza.

materials = {} materials["branches"] = liczba zebranych gałęzi ......

Gdy już wszystko zostanie umieszczone w słowniku, skieruj się do jasnego oznaczenia X i przeprowadź inwentaryzację wszystkich zgromadzonych materiałów używając pętli for z funkcją speak(). Ponieważ słowniki różnią się od list, nie można przez nie przechodzić w sekwencji w ten sam sposób, zamiast tego słowniki mają swoje własne metody na to.

for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))

Ustawiając dwie zmienne, w tym przypadku name i number, można uzyskać dwa pola w słowniku. Używając instrukcji in w połączeniu z nazwą słownika oraz funkcją items(), można iterować przez słownik jak w normalnej pętli for.

Po przeprowadzeniu inwentaryzacji, przejdź do ciemnych oznaczeń X i schowaj zebrane w słowniku materiały do pojemników używając funkcji place(), takiej jak: player.place(materials["branches"]). Są trzy (3) ciemne oznaczenia X, do lewego pojemnika włóż "branches", do środkowego pojemnika "boulders", a do prawego pojemnika "planks". Umieść wszystko we właściwej kolejności, aby ukończyć poziom.

Księga Kodów