В Python циклы позволяют выполнять определённое действие несколько раз подряд. Само действие помещается в тело цикла, а количество повторений указывается в условии. Это условие может быть простым числом, например, пять или десять, или более сложной проверкой — например, анализом значения переменной внутри цикла. Каждое выполнение тела цикла — это итерация.
У циклов в Python есть особенность. Внутри тела цикла можно использовать оператор else, который сработает, когда условие цикла перестанет выполняться. То есть цикл не просто завершится, а перед окончательным выходом совершит последнее действие. Например, в условии задано повторение цикла 25 раз, в теле — вывод чисел из условия последовательно, а в операторе else — слово «Хватит». Тогда цикл сначала выведет по очереди числа от 1 до 25, а потом «Хватит».
В большинстве других языков для этого пришлось бы использовать кроме цикла ещё и конструкцию if-else, то есть немного усложнять код. Python позволяет встроить условие else прямо внутрь цикла.
В циклах в языке Python можно использовать ещё два оператора:
Циклы помогают создавать более сложные инструкции:
count = 0
while count < 6:
print(count)
count += 2
«For» с английского переводится как «для». Этот вид цикла используют, когда количество итераций зависит от того, сколько в условии задано элементов.
Его синтаксис выглядит так:
for [элемент] in [последовательность]:
[тело цикла]
collection = [1,2,3,4,5,6,7,8,9,10]
n = 10
for i in collection:
l = n*i
print(l)
Переменные collection и n можно задать вручную, а можно предложить пользователю ввести их с клавиатуры. Тогда цикл получится использовать для умножения и вывода любой вводимой последовательности данных.
Внутрь цикла for можно добавить оператор else, который описывали выше:
collection = [1,2,3,4,5,6,7,8,9,10]
n = 10
for i in collection:
l = n*i
print(l)
else:
print ('Хватит умножать')
В этом случае в конце итерации по элементам коллекции программа выведет на экран фразу «Хватит умножать», и только потом цикл завершится.
Внутри цикла for нельзя изменять итерируемый объект (переменная i) — это может привести к ошибкам. Его можно использовать для вывода или параметров в промежуточных вычислениях, но новые значения лучше не присваивать. Если нужно изменить переменную, возможно, понадобится другой цикл — while.
Цикл while с условием в Python используется, когда точное число повторений неизвестно и может изменяться в зависимости от поведения переменной в теле цикла.
«While» можно перевести с английского как «до тех пор, пока». Этот оператор будет выполнять тело цикла до тех пор, пока выражение в его условии остаётся истинным. Чтобы условие действительно имело шанс стать ложным, в теле цикла нужно изменить переменную, которая может использоваться как счётчик итераций.
Например, рассмотрим такой код:
n = 1
while n < 6:
print('Цикл выполнился', n, 'раз(а)')
n = n+1
n = 1
while n < 6:
print('Цикл выполнился', n, 'раз(а)')
Чтобы этого не допустить, при использовании конструкций с циклами нужно проверять, что условие выхода из цикла будет выполнено. Иначе программа зависнет и придётся завершать её принудительно.
Бесконечных циклов стараются избегать и используют редко, например для периодического вывода информации о времени, статусе выполнения программы или блока кода, при логировании и отладке приложения.
Первый пример:
for i in range(10, 5, -2):
print(i)
Второй пример:
word_str = "Hello, world!"
for n in word_str:
print(n)
Третий пример:
n = 6
while n > 0:
n -= 1
print(n)
Четвёртый пример:
iter = 6
while n > 0:
iter -= 1
if iter == 3:
continue
print(n)
print('Конец цикла')
Николай Федосеев
Циклы — одна из базовых конструкций любого языка программирования. Ни один алгоритм или программа не обходятся без использования циклов для выполнения однотипных конструкций языка или блоков кода. Программисту важно понимать, как работают циклы, в какой области применяются, какие у них есть особенности и ограничения. Только так он сможет писать эффективный код и решать продуктовые задачи.
Читать также: