Curso de Desenvolvimento em Python
Capítulo
>
Nível

Usando Dicionários
Iterando sobre Dicionários

Objetivo

Recupere todos os materiais no campo e faça o inventário de todos os itens coletados antes de guardá-los em recipientes específicos.

Uma tempestade devastou o posto avançado próximo à ponte, espalhando materiais por toda parte. Tenho certeza de que esses materiais poderão ser utilizados mais tarde. Faça o inventário de cada um dos objetos que você recolher e guarde-os na despensa do outro lado da ponte.

Primeiro, colete todos os destroços espalhados no campo, que são: "branches" ,"boulders" e "planks". Uma vez que você tenha coletado todos os itens, coloque-os em um dicionário chamado materials e adicione os três (3) nomes dos materiais e suas quantidades dentro dele.

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

Depois de colocar tudo dentro de um dicionário, dirija-se até o X iluminado e faça o inventário de todos os materiais que você reuniu usando um loop for com a função speak(). Como os dicionários são diferentes das listas, você não pode iterar sobre eles em sequência da mesma forma; em vez disso, os dicionários possuem seu próprio método para isso.

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

Ao definir duas variáveis, neste caso name e number, você consegue obter os dois campos de um dicionário. Usando a instrução in seguida pelo nome do dicionário e pela função items(), você pode iterar sobre o dicionário como em um loop for normal.

Depois de fazer o inventário, dirija-se aos Xs escuros e armazene os materiais que você reuniu no dicionário dentro dos recipientes usando a função place(), assim: player.place(materials["branches"]). Existem três (3) Xs escuros; no recipiente à esquerda, coloque os "branches", no recipiente do meio, coloque os "boulders" e, no recipiente à direita, coloque os "planks". Guarde tudo na posição correta para completar o nível.

Livro de Código