
Тип range в Python генерирует последовательность целых чисел, определяя начальную и конечную точки диапазона. Обычно он используется в цикле for для перебора последовательности чисел.
range() работает по-разному в Python 2 и 3.
В Python 2 есть две функции, позволяющие генерировать последовательность целых чисел: range и xrange . Эти функции очень похожи, главное отличие заключается в том, что range возвращает список, а xrange — объект xrange.
В Python 3 функция xrange была удалена, а функция range ведёт себя аналогично xrange из Python 2. В Python 3 range — это не функция, а тип, представляющий неизменяемую последовательность чисел.
В этой статье мы рассмотрим основы типа range в Python 3.
Синтаксис Python range()
Конструктор range принимает следующие формы:
range ( stop ) range ( start , stop [, step ])
Аргументы, передаваемые конструктору range должны быть целыми числами. Числа с плавающей точкой и другие типы не допускаются.
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 в список, поскольку range выполняет ленивую обработку целочисленной последовательности. На выходе получаем пустой список:
[]
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 "", line 1, in ValueError: range() arg 3 must not be zero
Заключение
Тип данных в Python range позволяет генерировать последовательность целых чисел. Он в основном используется в циклах for .
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства