Цикл for и функция range
Уроки курсаЦикл for и функция range
Функция range(): диапазоны и параметры
Писать числа вручную в списке — неудобно, когда нужно перебрать 100 или 1000 значений. Для этого в Python есть встроенная функция range(): она генерирует последовательность целых чисел по заданным правилам.
range() принимает от одного до трёх аргументов.
Одним аргументом: range(stop)
Самая короткая форма. Python начинает с нуля и идёт до stop, не включая его:
for i in range(5):
print(i)
# 0
# 1
# 2
# 3
# 4
range(5) — это ровно пять чисел: 0, 1, 2, 3, 4. Число 5 в вывод не попадает.
Двумя аргументами: range(start, stop)
Если нужно начать не с нуля, передаём оба аргумента:
for i in range(3, 8):
print(i)
# 3
# 4
# 5
# 6
# 7
Диапазон начинается с start включительно и заканчивается перед stop. Граница stop по-прежнему не входит в последовательность — это принципиальное правило, к которому вернёмся отдельно.
Тремя аргументами: range(start, stop, step)
Третий параметр — шаг между соседними значениями. По умолчанию он равен 1, но можно задать любой:
for i in range(0, 20, 5):
print(i)
# 0
# 5
# 10
# 15
Здесь Python прибавляет 5 на каждом шаге, пока не достигнет или не превысит 20.
Шаг может быть и отрицательным — тогда последовательность убывает:
for i in range(10, 0, -1):
print(i)
# 10
# 9
# 8
# ...
# 1
При отрицательном шаге start должен быть больше stop, иначе range() вернёт пустую последовательность и цикл не выполнится ни разу.
Чтобы не запутаться в трёх параметрах, удобно читать range(start, stop, step) как «начни с start, иди до stop с шагом step». range(1, 10, 2) — нечётные числа от 1 до 9: 1, 3, 5, 7, 9. range(10, 1, -3) — обратный отсчёт с шагом 3: 10, 7, 4.
