Найти тему
Удалёнка

Python. Диапазоны

Диапазоны или range представляют неизменяемый последовательный набор чисел. Для создания диапазов применяетя range, которая имеет следующие формы:

  • range(stop): возвращает все целые числа от 0 до stop
  • range(start, stop): возвращает все целые числа в промежутке от start (включая) до stop (не включая).
  • range(start, stop, step): возвращает целые числа в промежутке от start (включая) до stop (не включая), которые увеличиваются на значение step

Примеры вызовов функции range:

range(5)            # 0, 1, 2, 3, 4

range(1, 5)         # 1, 2, 3, 4

range(2, 10, 2)     # 2, 4, 6, 8

range(10, 2, -2)    # 10 8 6 4

Диапазоны чаще всего применяются в циклах for. Например, выведем последовательно все числа от 0 до 4:

for i in range(5):

print(i, end=" ")

# Консольный вывод

# 0, 1, 2, 3, 4

Другой пример выведем таблицу умножения:

for i in range(1, 10):

for j in range(1, 10):

print(i * j, end="\t")

print("\n")

1 2 3 4 5 6 7 8 9

2 4 6 8 10 12 14 16 18

3 6 9 12 15 18 21 24 27

4 8 12 16 20 24 28 32 36

5 10 15 20 25 30 35 40 45

6 12 18 24 30 36 42 48 54

7 14 21 28 35 42 49 56 63

8 16 24 32 40 48 56 64 72

9 18 27 36 45 54 63 72 81

Если нам необходим последовательный список чисел, то для его создания удобно использовать функцию range:

numbers = list(range(10))

print(numbers)      # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

numbers = list(range(2, 10))

print(numbers)      # [2, 3, 4, 5, 6, 7, 8, 9]

numbers = list(range(10, 2, -2))

print(numbers)      # [10, 8, 6, 4]

Преимуществом диапазонов над стандартными списками и кортежами является то, что диапазон всегда будет занимать одно и то же небольшое количество памяти вне зависимости от того, какой набор чисел представляет этот диапазон. В действительности диапазон хранит только начальное, конечное значение и приращение.