Python Ontwikkelingscursus
Hoofdstuk
>
Niveau
Woordenboeken gebruiken
Itereren over woordenboeken
Doelstelling
Berg alle materialen in het veld op en voer een inventarisatie uit van alle verzamelde objecten voordat je ze opbergt in specifieke containers.
Een storm heeft de uitvalpost bij de brug verwoest en materialen overal verspreid; ik ben er zeker van dat deze materialen later gebruikt kunnen worden. Voer inventarisatie uit van elk object dat je oppakt en berg ze op in de opslagruimte aan de overkant van de brug.
Verzamel eerst alle puin die in het veld verspreid liggen, namelijk: "branches" , "boulders" en "planks". Zodra je alle items hebt verzameld, plaats ze dan in een dictionary genaamd materials en voeg alle drie (3) de materiaelnamen en hoeveelheden toe.
materials = {} materials["branches"] = number of branches collected ......
Zodra alles in een dictionary is geplaatst, ga dan naar het lichte X-teken en voer inventarisatie uit op alle materialen die je hebt verzameld met een for-lus en de functie speak(). Omdat dictionaries anders zijn dan lijsten, kun je er niet op dezelfde manier sequentieel doorheen lopen; dictionaries hebben namelijk een eigen methode om dit te doen.
for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))
Door twee variabelen op te zetten, in dit geval name en number, kun je de twee velden uit een dictionary halen. Met behulp van de in instructie, gevolgd door de naam van de dictionary en de functie items(), kun je over de dictionary itereren zoals met een normale for-lus.
Nadat je de inventarisatie hebt uitgevoerd, loop naar de donkere X-tekens en berg de materialen die je in de dictionary hebt verzameld op in containers met de place() functie, zoals dit: player.place(materials["branches"]). Er zijn drie (3) donkere X-tekens; plaats in de container links de "branches", in de container in het midden de "boulders" en in de container rechts de "planks". Berg alles op de juiste plek op om het level te voltooien.