Тип range в Python генерирует последовательность целых чисел, определяя начальную и конечную точку диапазона. Обычно используется с циклом for в Python для итерации по последовательности чисел.
range() работает по-разному в Python 2 и 3.
В Python 2 есть две функции, которые позволяют генерировать последовательность целых чисел, rangeи xrange. Эти функции очень похожи, главное отличие в том, что range возвращает список и xrange возвращает объект xrange.
В Python 3 функция xrange была удалена, а функция range ведет себя подобно xrange в Python 2. range в Python 3 – это не функция, а тип, представляющий неизменяемую последовательность чисел.
В этой статье мы рассмотрим основы типа range в Python 3.
range принимает следующие формы:
range(stop) range(start, stop[, step])
Аргументы, предоставляемые range, должны быть целыми числами. Плавающие числа и другие типы не допускаются.
range принимает один обязательный и два необязательных аргумента. Он возвращает объект диапазона, который представляет данный диапазон, и генерирует числа по запросу.
Когда предоставлен только один аргумент, range возвращает последовательность чисел, увеличивается на 1, начиная с 0 и заканчивая – 1.
Вот тип диапазона в действии:
for i in range(5): print(i)
Сгенерированная последовательность чисел начинается с 0 и заканчивается на 4 (5-1):
0 1 2 3 4
Если аргумент равен 0 или отрицательное целое число, range возвращает пустую последовательность:
print(list(range(-5)))
Мы конвертируем объект range в список, потому что range выполняет ленивую оценку целочисленной последовательности. На выходе получается пустой список:
[]
Когда предусмотрены два аргумента, range возвращает последовательность чисел, увеличивается на 1, начиная с start к stop – 1.
Вот пример:
for i in range(3, 5): print(i)
3 4
Аргумент stop должен быть больше start. В противном случае последовательность будет пуста:
print(list(range(5, 3)))
[]
Вы можете использовать положительные и отрицательные целые числа в качестве аргументов:
print(list(range(-5, -3)))
[-5, -4]
print(list(range(-3, 0)))
[-3, -2, -1]
Когда задано три аргумента, 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 в Python.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.