Код БарсикОсновы Python
Основы Python›C09 · Теория

Теория · C09

Цикл for и накопление результата

Разберись в теме, запусти пример и переходи к самостоятельным задачам.

РАЗБИРАЕМ ПО ШАГАМ

От идеи к работающему коду

Если нужно пройти известный диапазон или набор элементов, используем for. Научимся выбирать границы range и собирать итог по шагам: сумму, произведение или текст таблицы.

Сразу к запуску примера ↓
Барсик собирает отдельные значения в общий результат.
Барсик собирает отдельные значения в общий результат.
  1. 1Диапазон значений
  2. 2Действие для каждого
  3. 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.

Python
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.

Python
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 пропускает оставшуюся часть текущего круга и переходит к следующему значению; это не завершает весь цикл.

Python
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 отдельно для последней строки и проверяем точный результат.

Python
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 — правая невключённая граница.

Три шага цикла for

range(3) даёт числа 0, 1, 2. Тело цикла выполняется для каждого из них. Попробуй заменить 3 на 5.

Запусти пример. Затем измени код или входные данные и проверь, как меняется вывод.

Пример входных данных

Ввод не нужен

Ожидаемый вывод

шаг 0
шаг 1
шаг 2
main.pyPython · можно менять код

Подготавливаем редактор…

Загрузка Python…

Каждый ответ — с новой строки.

Твой вывод

Здесь появится результат запуска.

Дальше — самостоятельные задачи

  1. Посчитать сумму 1…N
  2. Вывести кратные 3 в диапазоне
  3. Собрать строки таблицы без лишнего переноса после последней строки