Тип 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
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.