Перейти к основному содержимому

range() — это встроенная функция, которая даёт неизменяемую последовательность чисел. Чаще всего с её помощью цикл выполняют заданное количество раз.

Последовательность относится к отдельному типу данных с именем range.

Примечание: неизменяемый объект остаётся точно таким, каким был создан, и позже изменить его нельзя.


Создание диапазонов

Вы можете передать в range() 1, 2 или 3 аргумента. Полный синтаксис выглядит так:

main.py
range(start, stop, step)

Вызов range() с одним аргументом

Единственный аргумент считается значением stop.

Если опустить необязательный start, счёт по умолчанию начинается с 0.

Итак, range(10) даёт числа от 0 до 9: начальное значение 0 включается, а конечное значение 10 нет.

main.py
x = range(10)

Вызов range() с двумя аргументами

Если аргумента два, первый — это значение start, а второй — значение stop.

Итак, range(3, 10) даёт числа от 3 до 9:

main.py
x = range(3, 10)

Вызов range() с тремя аргументами

Третий аргумент задаёт значение step.

Шаг — это разница между одним числом и следующим. Его можно опустить, и тогда по умолчанию он равен 1.

Итак, range(3, 10, 2) считает от 3 до 9 с шагом 2:

main.py
x = range(3, 10, 2)

Использование диапазонов

Очень часто диапазон встречается в цикле for, который проходит по его числам одно за другим.

Пример

Выведите каждое число диапазона:

Prompt
Напишите программу на Python, которая с помощью цикла for и range(10) выводит каждое число от 0 до 9.
Вывод: полная программа на Python

Вывод диапазонов с помощью списка

Объект range — это отдельная неизменяемая последовательность чисел, и при выводе его числа не перечисляются.

Чтобы их увидеть, диапазон обычно сначала превращают в список.

Пример

Превратите несколько разных диапазонов в списки:

Prompt
Напишите программу на Python, которая преобразует три разных диапазона в списки и выводит их: range(5), range(1, 6) и range(5, 20, 3).
Вывод: полная программа на Python

Срезы диапазонов

Как и в других последовательностях, с помощью среза можно извлечь часть диапазона.

Примечание: в этом примере первый print показывает значение с индексом 2, а второй показывает новый объект range, охватывающий индексы от 0 до 3.

Пример

Извлеките часть диапазона:

Prompt
Напишите программу на Python, которая создаёт range(10), выводит элемент с индексом 2 и выводит срез от индекса 0 до 3.
Вывод: полная программа на Python

Проверка принадлежности

Оператор in позволяет проверить, содержит ли диапазон число.

Вы получите True, если число есть в диапазоне, и False, если его там нет.

Пример

Узнайте, принадлежат ли диапазону числа 6 и 7:

Prompt
Напишите программу на Python, которая создаёт range(0, 10, 2) и проверяет принадлежность чисел 6 и 7 с помощью оператора in. Выведите результаты.
Вывод: полная программа на Python

Длина

Передайте диапазон в функцию len(), и она сообщит, сколько в нём элементов.

Пример

Подсчитайте элементы диапазона:

Prompt
Напишите программу на Python, которая создаёт range(0, 10, 2) и выводит его длину с помощью len().
Вывод: полная программа на Python