Собираем счётчик шагов и повторяющуюся попытку. Разбираем range, границы и условие остановки.
Повторение начинается с правила
Если персонаж должен сделать пять шагов, можно пять раз написать print. Но при изменении количества придётся править несколько строк. Цикл описывает действие один раз и задаёт, когда повторять его. Сначала сформулируйте это обычными словами: «для каждого номера шага» или «пока остались попытки».
for удобен, когда вы перебираете набор элементов. while — когда повторение определяется условием. Это не жёсткий запрет на другие решения, а удобный способ выбрать читаемую конструкцию.
Пять шагов через for
range(1, 6) создаёт последовательность от 1 до 5: правая граница не включается. Это частая причина недостающего повторения. Уберите один уровень отступа у строки print и посмотрите, как меняется её принадлежность к телу цикла.
for step in range(1, 6):
print("Шаг", step)
print("Маршрут закончен")Попытки через while
Перед каждой итерацией проверяется условие. Если оно уже ложно, тело не выполнится ни разу. Поэтому важно понимать исходное значение переменной. В нашем примере счётчик обязательно уменьшается, иначе цикл не закончится.
attempts = 3
while attempts > 0:
print("Осталось попыток:", attempts)
attempts -= 1
print("Попытки закончились")Как проверить границы
Прогоните счётчик с исходными значениями 0, 1 и 3. Для нуля должен появиться только финальный текст. Для единицы — одна попытка. Затем замените > на >= и объясните, откуда взялась лишняя итерация. Такая ручная трассировка полезнее, чем запоминание конструкции без понимания.
Сделайте таблицу: значение до проверки, результат условия, действие, новое значение. Не помещайте бесконечный цикл в браузерный редактор: если эксперимент завис, остановите выполнение средствами редактора.
Задача: собрать кристаллы
Есть список находок [2, 0, 3, 1]. Посчитайте общее количество через for и переменную total, начинающуюся с нуля. Ожидаемый результат — 6. Затем замените список пустым: корректный итог — 0, а не ошибка о неизвестной переменной.
Расширение: учитывайте только находки больше одного. Сначала вычислите ответ вручную, затем добавьте if внутри цикла. Если результат расходится, временно печатайте текущее значение и промежуточный total. Это покажет, на какой итерации нарушилось правило.
из статьи — в свой проект
Python-компилятор
Открой инструмент ZIPKA и попробуй пример из разбора. Он доступен бесплатно, без записи на курс.
Открыть инструмент ↗