Python для новичковУправление ходом программыЦикл for и функция range

Цикл for и функция range

Уроки курсаЦикл for и функция range

Типичная ошибка: граница stop не включается

Самая частая ошибка при работе с range() — написать stop равным последнему нужному числу, а не на единицу больше. Предположим, нужно напечатать числа от 1 до 9 включительно:

# Ошибочный вариант
for i in range(1, 9):
    print(i)
# 1, 2, 3, 4, 5, 6, 7, 8  — 9 не вошло!

Число 9 не появится в выводе, потому что range() останавливается прямо перед stop. Правильный вариант:

# Правильный вариант
for i in range(1, 10):
    print(i)
# 1, 2, 3, 4, 5, 6, 7, 8, 9

Правило простое: stop = последнее нужное значение + 1. Хочешь дойти до 9 — пиши 10. Хочешь дойти до 100 — пиши 101.

Эта же логика работает с шагом. Если нужны нечётные числа от 1 до 9:

for i in range(1, 10, 2):
    print(i)
# 1, 3, 5, 7, 9

Здесь stop=10, хотя само 10 нечётное и даже не встретится на пути — важно лишь, что диапазон закрывается раньше него.

Процедура подбора аргументов range:

  1. Определи первое значение, которое должна принять переменная цикла — это start.

  2. Определи последнее нужное значение и прибавь к нему единицу — это stop.

  3. Если нужен шаг, отличный от 1, укажи его третьим аргументом.

  4. Напиши for переменная in range(start, stop, step): с двоеточием.

Для обратного отсчёта логика та же, но вывернутая: start — первое (большее) значение, stop — на единицу меньше последнего нужного, step — отрицательный. Чтобы напечатать числа от 5 до 1:

for i in range(5, 0, -1):
    print(i)
# 5, 4, 3, 2, 1

stop=0, хотя само 0 не нужно — Python остановится перед ним. Та же механика, тот же принцип: граница исключается всегда, в любом направлении.

Если после написания цикла результат оказался на одно значение короче, чем ожидалось — почти наверняка stop занижен на единицу. Это первое, что стоит проверить. Остальные правила синтаксиса — двоеточие и отступ — те же, что в любом цикле for.