Curs de Dezvoltare Python
Capitolul
>
Nivel

Folosirea dicționarelor
Iterarea prin dicționare

Obiectiv

Recuperați toate materialele din câmp și efectuați inventarul tuturor obiectelor colectate înainte de a le pune în containere specifice.

O furtună a distrus avanpostul de lângă pod, împrăștiind materialele peste tot; sunt sigur că aceste materiale pot fi folosite ulterior. Efectuează inventarul fiecărui obiect pe care îl aduni și așează-le în depozitul de peste pod.

Mai întâi colectează toate resturile împrăștiate în câmp, și anume: "branches" ,"boulders" și "planks". Odată ce ai adunat toate obiectele, plasează-le într-un dicționar numit materials și adaugă toate cele trei (3) nume de materiale și cantități în el.

materials = {} materials["branches"] = number of branches collected ......

Odată ce totul este plasat într-un dicționar, îndreaptă-te spre marca X luminoasă și efectuează inventarul tuturor materialelor adunate folosind un bucle for cu funcția speak(). Deoarece dicționarele sunt diferite de liste, nu poți itera prin ele în aceeași secvență obișnuită; în schimb, dicționarele au propria metodă de a face acest lucru.

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

Configurând două variabile, în acest caz name și number, poți obține cele două câmpuri dintr-un dicționar. Folosind declarația in urmată de numele dicționarului și funcția items(), poți itera prin dicționar ca într-un bucle for obișnuit.

După efectuarea inventarului, mergi spre marcajele X întunecate și depozitează materialele adunate din dicționar în containere folosind funcția place(), astfel: player.place(materials["branches"]). Există trei (3) marcaje X întunecate; în containerul din stânga plasează "branches", în containerul din mijloc plasează "boulders" iar în containerul din dreapta plasează "planks". Așază totul în poziția corectă pentru a finaliza nivelul.

Carte de Cod