Урок 19 range()

Генерация последовательностей чисел

⏱ ~8 мин чтения· 📘 Базовый

Три формы range()

range(stop) — числа от 0 до stop-1:

for i in range(5):
    print(i, end=" ")   # 0 1 2 3 4

range(start, stop) — от start до stop-1:

for i in range(2, 7):
    print(i, end=" ")   # 2 3 4 5 6

range(start, stop, step) — с шагом step:

for i in range(0, 10, 2):
    print(i, end=" ")   # 0 2 4 6 8

for i in range(10, 0, -2):
    print(i, end=" ")   # 10 8 6 4 2

range() в цикле for

Самое частое применение — повторение N раз:

for i in range(3):
    print("Hello")  # Hello Hello Hello

Особенности range()

range() не создаёт список, а генерирует числа на лету (экономит память):

# range — это отдельный тип
r = range(1000000)
print(type(r))  #
print(len(r))   # 1000000
print(r[0])     # 0
print(r[-1])    # 999999

При необходимости range можно преобразовать в настоящий список с помощью list():

nums = list(range(5))
print(nums)     # [0, 1, 2, 3, 4]
print(type(nums))  #

⚠️ Важно: 📝 Что такое list()? list() — это функция, которая создаёт список (коллекцию элементов) из переданной последовательности. Квадратные скобки [0, 1, 2, 3, 4] — это как раз внешний вид списка. Подробно списки разбираются в уроке 22.