파이썬 개발 과정
챕터
>
레벨

딕셔너리 사용하기
딕셔너리를 반복하기

목표

현장에서 모든 자재를 회수하고, 지정된 용기에 넣기 전 수집된 모든 아이템의 재고를 확인하세요.

폭풍이 다리 옆 전초 기지를 파괴하여 자재들이 여기저기 흩어졌습니다. 이 자재들은 나중에 사용될 수 있을 겁니다. 주운 각 객체에 대해 재고를 확인하고, 다리 건너편 저장실에 보관하세요.

먼저, 현장에 흩어진 모든 잔해, 즉: "branches", "boulders" 그리고 "planks" 를 수집하세요. 모든 아이템을 수집한 후, 이를 materials라는 딕셔너리에 넣고 세 가지 자재 이름과 수량을 모두 추가하세요.

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

모든 것을 딕셔너리에 넣은 후, 빛나는 X 표시로 이동하여 for 루프와 speak() 함수를 사용해 수집한 모든 자재의 재고를 확인하세요. 딕셔너리는 리스트와 달라서 동일한 방식으로 순차적으로 반복할 수 없으며, 대신 딕셔너리 고유의 메서드를 사용해야 합니다.

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

이 경우 namenumber 두 변수를 설정함으로써 딕셔너리 내의 두 필드를 가져올 수 있습니다. in 문 뒤에 딕셔너리 이름과 items() 함수를 사용하면 일반적인 for 루프처럼 딕셔너리를 순회할 수 있습니다.

재고 확인을 마친 후, 어두운 X 표시가 있는 곳으로 걸어가서 place() 함수를 사용해 딕셔너리에 있는 자재들을 용기에 보관하세요. 예를 들어, player.place(materials["branches"])와 같이요. 세 개의 어두운 X 표시가 있으며, 왼쪽 용기에는 "branches", 중앙 용기에는 "boulders", 오른쪽 용기에는 "planks"를 보관하세요. 레벨을 완료하기 위해 모든 것을 올바른 위치에 보관해야 합니다.

코드북