Python · 3 мин

Циклы for и while в Python: какой выбрать

Собираем счётчик шагов и повторяющуюся попытку. Разбираем range, границы и условие остановки.

Что разберём

Собираем счётчик шагов и повторяющуюся попытку. Разбираем range, границы и условие остановки.

Повторение начинается с правила

Если персонаж должен сделать пять шагов, можно пять раз написать print. Но при изменении количества придётся править несколько строк. Цикл описывает действие один раз и задаёт, когда повторять его. Сначала сформулируйте это обычными словами: «для каждого номера шага» или «пока остались попытки».

for удобен, когда вы перебираете набор элементов. while — когда повторение определяется условием. Это не жёсткий запрет на другие решения, а удобный способ выбрать читаемую конструкцию.

Пять шагов через for

range(1, 6) создаёт последовательность от 1 до 5: правая граница не включается. Это частая причина недостающего повторения. Уберите один уровень отступа у строки print и посмотрите, как меняется её принадлежность к телу цикла.

Элемент 1→Элемент 2→Элемент 3
Цикл for выполняет тело для каждого элемента последовательности.
Пример для практики
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 и попробуй пример из разбора. Он доступен бесплатно, без записи на курс.

Открыть инструмент ↗

Источники и дальнейшее чтение