Курс розробки на Python
Розділ
>
Рівень
Використання словників
Ітерація по словниках
Мета
Зібрати всі матеріали на полі та провести інвентаризацію всіх зібраних предметів перед тим, як покласти їх у спеціальні контейнери.
Шторм зруйнував форпост біля мосту, розкидаючи матеріали всюди. Я впевнений, що ці матеріали можна використати пізніше. Проведіть інвентаризацію кожного з об'єктів, які ви підберете, і покладіть їх у комору через міст.
Спочатку зберіть всі уламки, розкидані на полі, такі як: "branches" ,"boulders" та "planks" . Як тільки ви зберете всі предмети, помістіть їх у словник, названий materials, і додайте всі три (3) назви матеріалів та їх кількість усередину.
materials = {} materials["branches"] = number of branches collected ......
Коли все буде поміщено у словник, прямуйте до позначки Х зі світлом та проведіть інвентаризацію всіх матеріалів, які ви зібрали, за допомогою циклу for з функцією speak(). Оскільки словники відрізняються від списків, ви не можете циклічно перебирати їх у послідовності таким же чином. Замість цього словники мають свій власний метод для цього.
for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))
Налаштувавши дві змінні, у цьому випадку name і number, ви можете отримати два поля у словнику. Використовуючи оператор in, за яким йде назва словника, та функцію items(), ви можете перебирати словник, як звичайний цикл for.
Після проведення інвентаризації пройдіть до темних позначок Х і зберіть матеріали, які ви зібрали у словнику, у контейнери, використовуючи функцію place(), ось так: player.place(materials["branches"]). Є три (3) темні позначки Х, у лівий контейнер покладіть "branches" , у середній контейнер покладіть "boulders" та у правий контейнер покладіть "planks". Покладіть все на правильне місце, щоб завершити рівень.