Тип range () возвращает неизменяемую последовательность чисел между заданным начальным целым числом и конечным целым числом.
range()
конструктор имеет две формы определения:
диапазон (стоп) диапазон (старт, стоп (, шаг))
range () Параметры
range()
принимает в основном три аргумента, которые одинаково используются в обоих определениях:
- start - целое число, начиная с которого должна быть возвращена последовательность целых чисел
- стоп - целое число, перед которым должна быть возвращена последовательность целых чисел.
Диапазон целых чисел заканчивается наstop - 1
. - step (необязательно) - целочисленное значение, определяющее приращение между каждым целым числом в последовательности
Возвращаемое значение из диапазона ()
range()
возвращает неизменяемый объект последовательности чисел в зависимости от используемых определений:
диапазон (стоп)
- Возвращает последовательность чисел от
0
доstop - 1
- Возвращает пустую последовательность, если
stop
естьnegative
или0
.
диапазон (начало, остановка (, шаг))
Возвращаемое значение рассчитывается по следующей формуле с заданными ограничениями:
r (n) = start + step * n (как для положительного, так и для отрицательного шага), где n> = 0 и r (n) = 0 и r (n)> stop (для отрицательного шага)
- (Если нет
step
) Step по умолчанию 1. Возвращает последовательность чисел, начиная сstart
и заканчивая наstop - 1
. - (если
step
равно нулю) вызываетValueError
исключение - (если
step
не равно нулю) Проверяет соблюдение ограничения значения и возвращает последовательность в соответствии с формулой.
Если оно не соответствует ограничению значения, возвращается пустая последовательность.
Пример 1: Как диапазон работает в Python?
# empty range print(list(range(0))) # using range(stop) print(list(range(10))) # using range(start, stop) print(list(range(1, 10)))
Вывод
() (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (1, 2, 3, 4, 5, 6, 7, 8, 9)
Примечание. Мы преобразовали диапазон в список Python, поскольку он range()
возвращает объект, подобный генератору, который печатает вывод только по запросу.
Однако к объекту диапазона, возвращаемому конструктором диапазона, также можно получить доступ по его индексу. Поддерживает как положительные, так и отрицательные индексы.
Вы можете получить доступ к объекту диапазона по индексу как:
rangeObject (индекс)
Пример 2: Создайте список четных чисел между заданными числами, используя range ()
start = 2 stop = 14 step = 2 print(list(range(start, stop, step)))
Вывод
(2, 4, 6, 8, 10, 12)
Пример 3: Как range () работает с отрицательным шагом?
start = 2 stop = -14 step = -2 print(list(range(start, stop, step))) # value constraint not met print(list(range(start, 14, step)))
Вывод
(2, 0, -2, -4, -6, -8, -10, -12) ()