Что такое диапазон range() и как его использовать в циклах?

range() — это встроенный тип, который представляет собой ленивую последовательность целых чисел. Вызов range(stop) генерирует числа от 0 до stop (не включая), range(start, stop) — от start до stop (не включая), а range(start, stop, step) — с указанным шагом step. Чаще всего range() используют в циклах for для повторения действий заданное число раз.

Подробный ответ

Что такое range()

range() создаёт объект диапазона — последовательность целых чисел, которая генерируется по мере необходимости и не хранит все числа в памяти сразу.

Основные формы вызова:

  • range(stop) — числа от 0 до stop (не включая stop).

  • range(start, stop) — числа от start до stop (не включая).

  • range(start, stop, step) — с шагом step (может быть отрицательным).

range(5)           # 0, 1, 2, 3, 4
range(2, 5)        # 2, 3, 4
range(0, 10, 2)    # 0, 2, 4, 6, 8

Использование в циклах for

Чаще всего range() применяют в for, чтобы выполнить действие заданное число раз или пройтись по индексам.

for i in range(3):
    print(i)
# 0
# 1
# 2

С индексами списка:

nums = [10, 20, 30]
for i in range(len(nums)):
    print(i, nums[i])

Хотя в Python обычно предпочитают обходить элементы напрямую или через enumerate, умение пользоваться range — базовый навык.

Особенности range()

  • В Python 3 range() возвращает не список, а специальный объект диапазона, который ведёт себя как «ленивая» последовательность.

  • Если нужен именно список чисел, можно сделать list(range(...)), но это расходует память пропорционально количеству элементов.

Фраза для собеседования

Функция range() создаёт объект, представляющий последовательность целых чисел и чаще всего используется в циклах for. range(stop) даёт числа от 0 до stop не включительно, range(start, stop[, step]) — от start до stop с указанным шагом. В Python 3 это не список, а отдельный ленивый объект диапазона.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге