Найти тему
Будни питониста

Функция range().

Функция range() позволяет сгенерировать последовательность нужной длины. По сути, функция range() позволяет превратить цикл for в его классический вариант - цикл со счетчиком, например:

for х in range(l, 100):

print(x)

range ([начало,] конец [, шаг])

Если у функции один параметр, то это - конец. При этом в качестве параметра начало используется О. То есть range(0) равносильно range(0, 100). Значение параметра конец не включается в создаваемую последовательность, то есть при вызове range(0, 100) в последовательности будут числа от О до 99.

Параметр шаr задает инкремент. По умолчанию используется значение 1. Шаr может быть и отрицательным, поэтому вы можете не только увеличивать значение, но и уменьшать ero:

for х in range(200, 100, -1):

print(x)

В Python 2 функция range() возвращала просто список чисел. В Python 3 возвращается объект, поддерживающий механизм итерации. Данный объект поддерживает методы index(<значение>) и count(<значение>). Первый возвращает индекс элемента, имеющеrо указанное значение. Второй возвращает количество элементов с указанным значением. Примеры:

>>> rng = range(1, 100)

>>> rng.index(5)

4

>>> rng.count(100)

0

Нумерация элементов начинается с 0, поэтому элементу с числом 5 соответствует индекс 4. А вот поскольку число 100 не входит в нашу последовательность, то количество элементов, равных 100, равно 0.

Рассмотрим еще несколько примеров использования range():

for i in range(10):

print(i, end=" ")

print ()

for i in range (0, 50, 5):

print(i, end=" ")

print () for i in range(10, 0, -1):

print(i, end=" ")

Вывод будет таким:

0 1 2 3 4 5 6 7 8 9

0 5 10 15 20 25 30 35 40 45

10 9 8 7 6 5 4 3 2 1

Первый цикл for выводит значения от 0 до 10. Мы указываем только верхнюю границу. Если нижняя граница не указана, то подразумевается, что это 0.

Второй цикл for работает от О до 5, а увеличение счетчика происходит сразу на 5 единиц. Поэтому мы увидим числа 0, 5, 10, 15 и т.д. - кратные 5.

Третий цикл работает от 10 до 0, уменьшение счетчика происходит на единицу ( -1 ). Поэтому числа будут выведены в обратном порядке.

Функция range() возвращает последовательность цифр. Если ей передать в качестве аргумента положительное число, то последовательность будет охватывать числа от О до переданного аргумента ( включая его).

Если передать функции range() три аргумента, как мы это сделали во втором и третьем случаях, то они будут рассматриваться как начало, конец счета и интервал. Начало - это первый элемент нашей последовательности чисел, а конечное значение в него не попадает, поэтому мы получили набор чисел 0 5 10 15 20 25 30 З5 40 45 во втором случае.