Функция range в Python: описание и примеры

Функция range возвращает последовательность чисел в заданном диапазоне с заданным шагом. Как правило, эти последовательности используются в циклах for для итерации по последовательности чисел.

Синтаксис и параметры

range(stop)

range(start, stop, step=1)

  • start — начальное значение последовательности (по умолчанию 0).
  • stop — конечное значение последовательности (не включается).
  • step — шаг последовательности (по умолчанию 1).

Если мы передаем один аргумент, то это означает, что мы передаем аргумент остановки, а не начала последовательности.

Примеры использования

В примере ниже создается последовательность чисел 0 до 5 (не включая 5). Цикл for используется для итерации по этой последовательности:

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

Для того чтобы задать начальное значение последовательности, используйте два аргумента:

for i in range(2, 5):
    print(i)
2
3
4

Передайте третий аргумент, чтобы указать шаг последовательности:

for i in range(0, 10, 2):
    print(i)
0
2
4
6
8

Для того чтобы получить последовательность чисел в обратном порядке, укажите отрицательный шаг. Например, последовательность чисел от 5 до 1 может быть создана следующим образом:

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

Индексирование, срезы и преобразование в список

Функция range() возвращает итерируемый объект, который поддерживает операции индексирования и срезы:

numbers = range(10)
print(numbers)          # range(0, 5)
print(numbers[2])       # 2
print(numbers[2:5])     # range(2, 5)

Однако, если вам нужно получить именно список чисел, можно использовать функцию list() для преобразования объекта range в список:

numbers = list(range(5))
print(numbers)          # [0, 1, 2, 3, 4]

while и переменная счетчик или for и range?

Для итерации по последовательности чисел в Python можно использовать как цикл while с переменной счетчиком, так и цикл for с функцией range(). Однако, использование цикла for с range() обычно более предпочтительно, так как это делает код более читаемым и понятным. Сравните пример с использованием цикла while и переменной счетчиком и пример с использованием цикла for и range():

# Использование цикла while и переменной счетчика
i = 0
while i < 5:
    print(i)
    i += 1
# Использование цикла for и range
for i in range(5):
    print(i)