range() — это встроенная функция, которая даёт неизменяемую последовательность чисел. Чаще всего с её помощью цикл выполняют заданное количество раз.
Последовательность относится к отдельному типу данных с именем range.
Примечание: неизменяемый объект остаётся точно таким, каким был создан, и позже изменить его нельзя.
Создание диапазонов
Вы можете передать в range() 1, 2 или 3 аргумента. Полный синтаксис выглядит так:
range(start, stop, step)
Вызов range() с одним аргументом
Единственный аргумент считается значением stop.
Если опустить необязательный start, счёт по умолчанию начинается с 0.
Итак, range(10) даёт числа от 0 до 9: начальное значение 0 включается, а конечное значение 10 нет.
x = range(10)
Вызов range() с двумя аргументами
Если аргумента два, первый — это значение start, а второй — значение stop.
Итак, range(3, 10) даёт числа от 3 до 9:
x = range(3, 10)
Вызов range() с тремя аргументами
Третий аргумент задаёт значение step.
Шаг — это разница между одним числом и следующим. Его можно опустить, и тогда по умолчанию он равен 1.
Итак, range(3, 10, 2) считает от 3 до 9 с шагом 2:
x = range(3, 10, 2)
Использование диапазонов
Очень часто диапазон встречается в цикле for, который проходит по его числам одно за другим.
Пример
Выведите каждое число диапазона:
Вывод: полная программа на Python
for i in range(10):
print(i)
Вывод диапазонов с помощью списка
Объект range — это отдельная неизменяемая последовательность чисел, и при выводе его числа не перечисляются.
Чтобы их увидеть, диапазон обычно сначала превращают в список.
Пример
Превратите несколько разных диапазонов в списки:
Вывод: полная программа на Python
print(list(range(5)))
print(list(range(1, 6)))
print(list(range(5, 20, 3)))
Срезы диапазонов
Как и в других последовательностях, с помощью среза можно извлечь часть диапазона.
Примечание: в этом примере первый print показывает значение с индексом 2, а второй показывает новый объект range, охватывающий индексы от 0 до 3.
Пример
Извлеките часть диапазона:
Вывод: полная программа на Python
r = range(10)
print(r[2])
print(r[:3])
Проверка принадлежности
Оператор in позволяет проверить, содержит ли диапазон число.
Вы получите True, если число есть в диапазоне, и False, если его там нет.
Пример
Узнайте, принадлежат ли диапазону числа 6 и 7:
Вывод: полная программа на Python
r = range(0, 10, 2)
print(6 in r)
print(7 in r)
Длина
Передайте диапазон в функцию len(), и она сообщит, сколько в нём элементов.
Пример
Подсчитайте элементы диапазона:
Вывод: полная программа на Python
r = range(0, 10, 2)
print(len(r))