РАЗБИРАЕМ ПО ШАГАМ
От идеи к работающему коду
Если нужно пройти известный диапазон или набор элементов, используем for. Научимся выбирать границы range и собирать итог по шагам: сумму, произведение или текст таблицы.
Сразу к запуску примера ↓
- 1Диапазон значений
- 2Действие для каждого
- 3Общий результат
1. for берёт значения по очереди
В конструкции for number in range(1, 5) переменная number последовательно получает 1, 2, 3 и 4. После последнего значения цикл заканчивается сам.
Правая граница range не включается. range(5) начинается с 0, а range(1, 5) — с 1. Чтобы включить число N в диапазон от 1, нужна граница N + 1.
for number in range(1, 5): print(number)2. Сумма накапливается в отдельной переменной
Создаём total до цикла, затем на каждом круге прибавляем очередное число. Запись total += number равносильна total = total + number.
Если присвоить total = 0 внутри цикла, предыдущий результат будет теряться. Проследи изменения для N = 4: 0 → 1 → 3 → 6 → 10. При N = 0 диапазон пуст и сумма остаётся равна 0.
n = 4total = 0for number in range(1, n + 1): total += numberprint(total)3. Шаг и фильтрация
Третий аргумент range — шаг. range(3, 13, 3) выдаёт 3, 6, 9, 12. Отрицательный шаг позволяет двигаться в обратную сторону. Шаг 0 недопустим.
Иногда проще перебрать все числа и оставить подходящие с помощью if. continue пропускает оставшуюся часть текущего круга и переходит к следующему значению; это не завершает весь цикл.
for number in range(1, 13): if number % 3 != 0: continue print(number)for number in range(5, 0, -1): print(number)4. Выбираем начальное значение
Для суммы нужен старт 0, для произведения — 1. Если произведение начать с 0, любое умножение оставит 0. Для сборки текста начинаем с пустой строки.
print по умолчанию завершает вывод переносом строки. Параметр end меняет этот конец. Если условие задачи запрещает последний перенос, выбираем end отдельно для последней строки и проверяем точный результат.
product = 1for number in range(1, 5): product *= numberprint(product)for number in range(1, 4): ending = "\n" if number < 3 else "" print(f"2 × {number} = {2 * number}", end=ending)Где легко ошибиться
- Включить N в условие задачи, но забыть N + 1 в range.
- Сбрасывать накопитель внутри цикла.
- Начать произведение с 0 или выбрать шаг не в ту сторону.
Проверь понимание: Что выведет list(range(2, 8, 2))?
[2, 4, 6]. Число 8 — правая невключённая граница.
