Функция range() в Python

Тип range Python генерирует последовательность целых чисел, определяя начальную и конечную точки диапазона. Обычно он используется с циклом for для перебора последовательности чисел.

range() работает по-разному в Python 2 и 3.

В Python 2 есть две функции, которые позволяют генерировать последовательность целых чисел, range и xrange . Эти функции очень похожи, с основным отличием в том, что range возвращает список, а xrange возвращает объект xrange.

В Python 3 функция xrange была удалена, а функция range ведет себя аналогично Python 2 xrange . range Python 3 — это не функция, а тип, представляющий неизменяемую последовательность чисел.

В этой статье мы рассмотрим основу Python 3 range типа.

Синтаксис range() в Python

Конструктор range принимает следующие формы:

range(stop)

range(start, stop[, step])


Аргументы, передаваемые конструктору range должны быть целыми числами. Плавающие числа и другие типы не допускаются.

range принимает один обязательный и два необязательных аргумента. Он возвращает объект диапазона, который представляет данный диапазон и генерирует числа по запросу.

range(stop)

Если указан только один аргумент, range возвращает последовательность чисел, увеличенных на 1 , начиная с 0 до stop - 1 .

Вот тип диапазона в действии:

for i in range(5):

    print(i)


Сгенерированная последовательность чисел начинается с 0 и заканчивается 4 (5-1):

0

1

2

3

4


Если аргумент равен 0 или range отрицательных целых чисел возвращает пустую последовательность:

print(list(range(-5)))


Мы конвертируем объект диапазона в список, потому что диапазон выполняет ленивую оценку целочисленной последовательности. Результатом будет пустой список:

[]


range(start, stop)

Если указаны два аргумента, range возвращает последовательность чисел, увеличенную на 1 , начиная от start до stop - 1 .

Вот пример:

for i in range(3, 5):

    print(i)


3

4


Аргумент stop должен быть больше start . В противном случае последовательность пуста:

print(list(range(5, 3)))


[]


В качестве аргументов можно использовать 0 , положительные и отрицательные целые числа:

print(list(range(-5, -3)))


[-5, -4]


print(list(range(-3, 0)))


[-3, -2, -1]


range(start, stop, step)

Когда даны три аргумента, range возвращает последовательность чисел, увеличивающуюся или уменьшающуюся на step , начиная от start до stop - 1 .

Если step положительный, range возвращает последовательность, которая увеличивается:

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

    print(i)


0

5

10

15

20

25


При увеличении аргумент stop должен быть больше start . В противном случае последовательность пуста.

Если step отрицательный, range возвращает последовательность, которая уменьшается:

for i in range(20, 4, -5):

    print(i)


20

15

10

5


При уменьшении аргумент stop должен быть меньше start . В противном случае последовательность пуста.

Если step равен 0 возникает исключение ValueError:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: range() arg 3 must not be zero


Выводы

Тип range Python позволяет генерировать последовательность целых чисел. В основном он используется в циклах for .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-12-10T18:57:22
Python