Синергия Онлайн-школа
easycode4 мин чтения

Списки в Python: первый инвентарь для простой игры

Редакция Школьного Университета «Синергия»

Редакционный материал об образовании и обучении

Список в Python хранит последовательность элементов. Для первой игры это может быть инвентарь персонажа: ключ, карта, фонарь. Список позволяет добавить предмет, проверить наличие и перебрать содержимое. Начинать удобно с короткой программы, результат которой можно предсказать до запуска.

Создание и индексы

python
inventory = ["ключ", "карта"]
print(inventory[0])
print(inventory[1])

Будут выведены «ключ» и «карта». Индексация начинается с нуля, поэтому для двух элементов допустимы индексы 0 и 1. Обращение inventory[2] вызовет IndexError: третьего элемента пока нет. Длина списка получается через len(inventory), но длина и последний положительный индекс — не одно число. Список может содержать разные значения, однако для первого проекта удобно выбрать один понятный тип. В нашем инвентаре все элементы — строки с названиями предметов. Это уменьшает число дополнительных вопросов во время изучения операций.

Добавление и удаление

python
inventory.append("фонарь")
if "ключ" in inventory:
    inventory.remove("ключ")
print(inventory)

Теперь в списке остаются «карта» и «фонарь». append добавляет элемент в конец. remove удаляет первое совпадающее значение и вызовет ошибку, если такого значения нет. Поэтому в примере перед удалением стоит проверка наличия. Не присваивайте inventory = inventory.append("фонарь"). Метод изменяет сам список и возвращает None, а не готовый новый список. Такое присваивание потеряет привычный доступ к инвентарю через переменную.

Как вывести всё содержимое

python
for item in inventory:
    print("Предмет:", item)

Цикл получает элементы по очереди. Не обязательно заранее узнавать их количество и вручную писать отдельную строку для каждого индекса. Если список пуст, тело такого цикла просто не выполнится ни разу. При изменении списка во время перебора можно неожиданно пропустить элементы. Для начального проекта разделяйте задачи: сначала вывод содержимого, затем отдельное добавление или удаление. Более сложные способы фильтрации стоит изучать после уверенного понимания обычного перебора.

Копия и второе имя

Запись bag = inventory не создаёт независимый второй список. Обе переменные ссылаются на один объект, поэтому изменение через bag будет видно и через inventory. Для отдельной поверхностной копии простого списка строк можно использовать inventory.copy(). В учебной игре это важно, если нужно сохранить исходный набор для нового раунда. Но поверхностная копия не копирует вложенные изменяемые объекты на всех уровнях: не переносите правило без уточнений на сложные структуры.

Что проверить в своей версии

ПроверкаОжидаемый результат
Добавить предметДлина увеличивается на один
Удалить существующийПредмет исчезает
Попробовать использовать отсутствующийПрограмма обрабатывает ситуацию без случайной ошибки
Создать новый раундНачальный набор восстанавливается по правилам

Скачайте учебный файл инвентаря и запустите его локально в установленном Python 3. Затем добавьте предмет и новую проверку. Пример не требует сети и не записывает личные данные.

Как связать списки с игровым проектом

Следующий шаг — условие «дверь открывается, если ключ есть в инвентаре». Сначала проверьте две ситуации отдельно: с ключом и без. Не добавляйте сразу интерфейс и сложную графику, пока логика не стала понятной. В треке геймдева EasyCode для 10–17 лет заявлены Python и игровые проекты. Покажите преподавателю свою версию инвентаря: важно, может ли ребёнок объяснить операции и придумать проверку, а не только воспроизвести готовый текст.

Источники и материалы для проверки: Python: структуры данных.

Читайте также: Python для детей: с какого возраста, с чего начать и какие проекты держат интерес; Godot или Unity: что выбрать для первого проекта подростка.

Выберите подходящую программу и уточните условия занятий или поступления.

Программа и условия

читайте также

easycode

Отладка кода для начинающих: как искать ошибку

Пошаговая отладка первого проекта: воспроизведение, ожидаемый результат, минимальный пример, проверка гипотезы и повторный тест на JavaScript.

easycode

Godot или Unity: что выбрать для первого проекта

Godot и Unity для подростка: язык, сложность первого проекта, 2D и 3D, лицензия, оборудование и выбор курса без бесконечной смены движков.

easycode

Условия в Scratch: если и иначе на примере игры

Условия в Scratch: что проверяет блок «если», как работает «иначе» и почему проверку повторяют. Пример игры и тесты для ребёнка.

← все материалы блога