Функция Python range()

Диапазон Питона

Тип 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 .

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

цикл питона

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *