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(). Функция может принять до трёх параметров:
range(end) создаст набор чисел от 0 до end - 1 с шагом 1;range(start, end) создаст набор чисел от start до end - 1 с шагом 1;range(start, end, step) создаст набор чисел от start до end - 1 с шагом step.Цикл for и функция range() создают мощную связку:
for i in range(9): # Каждое число от 0 до 8...
print(i) # ... выводится на экран
whileДля повторения каких-либо действий по заданному условию используется цикл while. Синтаксис этого цикла следующий:
while *условие*:
*действия, выполняющиеся при истинности условия (тело цикла)*
Здесь уже нет переменной, которая хранит в себе какие-то значения, и с этой точки зрения цикл с предусловием проще. Однако его использование требует осторожности, так как можно получить ситуацию, когда программа застрянет в цикле (об этом чуть позже).
<aside> 💡 Здесь, как и в переборном цикле, код, который относится к циклу, выделяется отступами.
</aside>
Посмотрим на простой пример цикла с предусловием: