หลักสูตรการพัฒนา Python
บทที่
>
ระดับ

การใช้พจนานุกรม
การวนซ้ำผ่านพจนานุกรม

วัตถุประสงค์

รวบรวมวัสดุทั้งหมดในสนามและทำการตรวจนับวัสดุที่เก็บได้ทั้งหมดก่อนที่จะเก็บไว้ในภาชนะที่กำหนด

พายุทำลายค่ายเล็ก ๆ ข้างสะพาน ทำให้วัสดุกระจัดกระจายไปทั่ว ฉันมั่นใจว่าวัสดุเหล่านั้นสามารถนำไปใช้ในภายหลังได้ ทำการตรวจนับสำหรับแต่ละวัตถุที่คุณเก็บขึ้นมาและนำไปเก็บไว้ในโกดังที่อยู่ฝั่งตรงข้ามสะพาน

ก่อนอื่นให้เก็บเศษซากทั้งหมดที่กระจัดกระจายอยู่ในสนาม ซึ่งได้แก่: "branches" ,"boulders" และ "planks" เมื่อคุณเก็บของทั้งหมดแล้ว ให้นำไปใส่ใน dictionary ที่ชื่อว่า materials และเพิ่มชื่อวัสดุทั้งสาม (3) และจำนวนของวัสดุนั้นลงไป

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

เมื่อทุกอย่างถูกเก็บไว้ใน dictionary แล้ว ให้มุ่งหน้าไปยังเครื่องหมาย X ที่สว่างและทำการตรวจนับวัสดุทั้งหมดที่คุณได้เก็บรวบรวม โดยใช้ลูป for ควบคู่กับฟังก์ชัน speak() เนื่องจาก dictionary จะแตกต่างจาก list คุณไม่สามารถวนลูปผ่านพวกมันในรูปแบบลำดับเดียวกัน แต่ dictionary มีวิธีของตัวเองในการดึงข้อมูลนี้

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

โดยการตั้งตัวแปรสองตัว ในกรณีนี้คือ name และ number คุณจะได้รับสองฟิลด์ใน dictionary การใช้คำสั่ง in ตามด้วยชื่อของ dictionary และฟังก์ชัน items() คุณสามารถวนลูปผ่าน dictionary เหมือนกับการใช้ for loop ปกติ

หลังจากทำการตรวจนับแล้ว ให้เดินไปยังเครื่องหมาย X ที่มืดและเก็บวัสดุที่คุณได้เก็บไว้ใน dictionary ลงในภาชนะโดยใช้ฟังก์ชัน place() ดังนี้: player.place(materials["branches"]) มีเครื่องหมาย X ที่มืดทั้งหมดสาม (3) ตรงภาชนะด้้านซ้ายให้ใส่ "branches" ตรงภาชนะตรงกลางให้ใส่ "boulders" และตรงภาชนะด้้านขวาให้ใส่ "planks" เก็บทุกอย่างให้ถูกตำแหน่งเพื่อที่จะสามารถผ่านด่านนี้ได้

หนังสือโค้ด