Переборный цикл for и функция range()

Чтобы перебрать все элементы какого-то набора (например, числа от 1 до 10 или символы какой-то строки), можно использовать цикл for ... in .... Посмотрим на синтаксис этого цикла:

for *имя переменная* in *набор данных*:
	*действия для каждого элемента из набора (тело цикла)*

Каждый раз, когда совершается набор действий с новым элементом набора, говорят, что происходит итерация цикла.

<aside> 👉 Обратите внимание, что действия, которые выполняются в цикле, также нужно выделять отступами, как в условном операторе.

</aside>

Рассмотрим простейший пример переборного цикла:

for i in 1, 2, 3, 4, 5: # Для каждого числа из набора от 1 до 5...
	print(i ** 2)         # ... выводим его квадрат с новой строчки

Можно передать элементы для перебора, просто перечислив их через запятую, и это всегда работает.

Так как часто приходится перебирать числа в определённом диапазоне, в Python имеется способ сгенерировать нужные числа с помощью функции range(). Функция может принять до трёх параметров:

Цикл for и функция range() создают мощную связку:

for i in range(9): # Каждое число от 0 до 8...
	print(i)         # ... выводится на экран

Цикл с предусловием while

Для повторения каких-либо действий по заданному условию используется цикл while. Синтаксис этого цикла следующий:

while *условие*:
	*действия, выполняющиеся при истинности условия (тело цикла)*

Здесь уже нет переменной, которая хранит в себе какие-то значения, и с этой точки зрения цикл с предусловием проще. Однако его использование требует осторожности, так как можно получить ситуацию, когда программа застрянет в цикле (об этом чуть позже).

<aside> 💡 Здесь, как и в переборном цикле, код, который относится к циклу, выделяется отступами.

</aside>

Посмотрим на простой пример цикла с предусловием: