Тип даних range
Робота з послідовностями цілих чисел — доволі розповсюджена задача.
В Python для цього є спеціальний тип даних: range
.
З англійської "range" перекладається як "діапазон".
Власне range
і являє собою послідовність цілих чисел у певному діапазоні.
Створити діапазон можна за допомогою функції range()
.
Першим параметром цієї функції є початкове значення діапазону чисел, це число буде включено у послідовність цілих чисел.
Другий параметр — кінцеве значення діапазону, це число не буде включене у послідовність.
Створимо послідовність чисел 1, 2, ... 5:
>>> r = range(1, 6)
>>> r
range(1, 6)
>>> type(r)
<class 'range'>
>>>
Оскільки range
є послідовністю, можна привести до послідовності іншого типу:
>>> list(r)
[1, 2, 3, 4, 5]
>>>
Якщо діапазон починається з 0, то при його створенні можна вказати лише кінцеве значення:
>>> r = range(5)
>>> r
range(0, 5)
>>> list(r)
[0, 1, 2, 3, 4]
>>>
Більш того — ще можна вказати крок послідовності:
>>> r = range(1, 10, 2)
>>> r
range(1, 10, 2)
>>> list(r)
[1, 3, 5, 7, 9]
>>>
Початок, кінець, крок... нічого не нагадує? Так! Усе так само як у зрізаннях.
У послідовності має бути довжина. Перевіримо:
>>> len(r)
5
>>>
Доступ до елементів послідовності по індексам:
>>> r[-1]
9
>>>
range
— послідовність немутабельна:
>>> r[0] = 7
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'range' object does not support item assignment
>>>
Зрізання:
>>> r[1:-1]
range(3, 9, 2)
>>> list(r[1:-1])
[3, 5, 7]
>>>
Перевірити чи входить число у діапазон:
>>> 0 in range(100)
True
>>> 100 in range(100)
False
>>> 3 in range(0, 100, 3)
True
>>>
Ну і перебрати у циклі for
таку послідовність теж можна:
>>> for n in r:
... print(n)
...
1
3
5
7
9
>>>