Перебор списка: цикл по всем предметам
Учим цикл шагать по списку и обрабатывать каждый предмет: перекличка игроков и подсчёт очков команды.
Перебор списка — это когда цикл по очереди берёт каждый элемент списка и что-то с ним делает.
Цикл идёт по рюкзаку
Список — это здорово, но самое полезное — уметь пройтись по всем предметам и с каждым что-то сделать. Например, назвать каждого зверя в зоопарке. Для этого цикл for умеет шагать прямо по списку — берёт предметы один за другим:
animals = ["кот", "собака", "попугай"]
for animal in animals:
print("В зоопарке живёт:", animal)
Вывод:
В зоопарке живёт: кот В зоопарке живёт: собака В зоопарке живёт: попугай
Прочитаем строчку for animal in animals: по-русски: «для каждого animal в списке animals». На первом круге animal станет «кот», на втором — «собака», на третьем — «попугай». Цикл сам прошёл весь список, и нам не пришлось знать заранее, сколько в нём зверей. Это называется перебор списка.
Удобное имя для каждого предмета
Заметь: animals (с буквой s на конце) — это весь список, а animal (без s) — один текущий предмет. Так часто делают: список зовут во множественном числе, а предмет — в единственном. Это не обязательно, но помогает не запутаться: «для каждого animal из animals».
Считаем очки всей команды
Соединим перебор списка с копилкой суммы из прошлого раздела. У нас оценки за контрольную, и мы хотим узнать общую сумму очков:
scores = [5, 4, 5, 3, 5]
total = 0
for s in scores:
total = total + s
print("Сумма очков:", total)
Вывод:
Сумма очков: 22
Цикл берёт оценки по очереди (5, потом 4, потом 5...) и каждую прибавляет в копилку total. В конце там лежит сумма всех оценок — 22. Так считают общий счёт команды, сумму покупок, очки за все уровни.
Как это в Scratch
В Scratch есть блок «для каждого предмета в списке» — он делает ровно то же самое: по очереди достаёт элементы списка. Та же идея «пройтись по всем», которую ты уже понял.
для каждого [зверь] в [животные]
сказать зверь
Попробуй сам
У нас список дел на день. Пусть программа напомнит про каждое. Запусти, потом допиши своё дело в список.
dela = ["сделать уроки", "погулять", "почитать книгу"]
for delo in dela:
print("Не забудь:", delo)
Вывод:
Не забудь: сделать уроки Не забудь: погулять Не забудь: почитать книгу
Частые ошибки
- Путать список и предмет. В
for animal in animalsсписок — этоanimals, а один зверь —animal. Печатать внутри цикла надо предмет (animal), а не весь список. - Создавать копилку внутри цикла. Как и со счётчиком:
total = 0пиши до цикла, иначе сумма будет каждый раз обнуляться.
Что мы узнали
- Перебор списка — цикл
for ... in списокпо очереди берёт каждый предмет. - Не нужно знать заранее длину списка — цикл сам пройдёт все элементы.
- Перебор + копилка = подсчёт суммы по всему списку.
Закрепите практикой
Задачи с автоматической проверкой — решайте прямо здесь, не уходя из учебника.