Python-utvecklingskurs
Kapitel
>
Nivå

Använda ordböcker
Iterera över ordböcker

Mål

Återhämta allt material i fältet och genomför en inventering av alla insamlade objekt innan de läggs på plats i specifika behållare.

En storm förstörde utposten vid bron och spred material överallt. Jag är säker på att de materialen kan användas senare. Utför en inventering av varje objekt du plockar upp och lägg dem i förrådet på andra sidan bron.

Samla först in allt skräp som finns utspritt på fältet, vilka är: branches ,boulders och planks. När du har samlat alla objekt, placera dem i en ordbok som heter materials och lägg in alla tre (3) materialnamn samt mängderna i den.

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

När allt är placerat i en ordbok, bege dig mot det ljusa X-märket och utför en inventering av alla material du har samlat genom att använda en for-slinga med funktionen speak(). Eftersom ordböcker är annorlunda än listor kan du inte iterera genom dem på samma sekventiella sätt; istället har ordböcker sin egen metod för att hantera detta.

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

Genom att skapa två variabler, i detta fall name och number, kan du hämta de två fälten från en ordbok. Genom att använda in-satsen följt av ordbokens namn och funktionen items() kan du iterera genom ordboken som en vanlig for-slinga.

Efter att ha genomfört inventeringen, gå till de mörka X-märken och lagra de material du har samlat in från ordboken i behållarna med hjälp av funktionen place(), så här: player.place(materials["branches"]). Det finns tre (3) mörka X-märken: i den vänstra behållaren placeras branches, i den mellersta behållaren placeras boulders och i den högra behållaren placeras planks. Placera allt på rätt ställe för att slutföra nivån.

Kodbok