Pythonutviklingskurs
Kapittel
>
Nivå
Bruke ordbøker
Iterere gjennom ordbøker
Mål
Gjenopprett alt materiale på feltet og ta en fullstendig inventarsjekk av alle innsamlede gjenstander før du legger dem bort i spesifikke beholdere.
Et uvær ødela utposten ved broen og spredte materialer overalt. Jeg er sikker på at disse materialene kan brukes senere. Gå gjennom inventaret for hvert objekt du plukker opp, og legg dem deretter bort i lagerbygningen på andre siden av broen.
Først, samle alt rusk som er spredt på feltet, nemlig: "branches" ,"boulders" og "planks". Når du har samlet alle gjenstandene, plasser dem i en ordbok kalt materials og legg til alle de tre (3) materialnavnene og kvantitetene i den.
materials = {} materials["branches"] = number of branches collected ......
Når alt er lagt inn i ordboken, gå til det lyse X-merket og kjør inventaret på alle materialene du har samlet ved å bruke en for-løkke med speak()-funksjonen. Siden ordbøker er forskjellige fra lister, kan du ikke iterere gjennom dem på samme måte; i stedet har ordbøker sin egen metode for å få dette til.
for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))
Ved å sette opp to variabler, i dette tilfellet name og number, kan du hente ut de to feltene fra en ordbok. Ved å bruke in-setningen etterfulgt av navnet på ordboken og funksjonen items() kan du iterere gjennom ordboken som en vanlig for-løkke.
Etter inventaret, gå til de mørke X-mmerkene og plasser materialene du har samlet i ordboken i beholdere ved å bruke place()-funksjonen, slik: player.place(materials["branches"]). Det er tre (3) mørke X-merker; i den venstre beholderen plasserer du "branches", i midtbeholderen plasserer du "boulders" og i den høyre beholderen plasserer du "planks". Legg alt bort på korrekt plass for å fullføre nivået.