Функция 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)