У циклов в Python есть особенность. Внутри тела цикла можно использовать оператор else, который сработает, когда условие цикла перестанет выполняться. То есть цикл не просто завершится, а перед окончательным выходом совершит последнее действие. Например, в условии задано повторение цикла 25 раз, в теле — вывод чисел из условия последовательно, а в операторе else — слово «Хватит». Тогда цикл сначала выведет по очереди числа от 1 до 25, а потом «Хватит».
В большинстве других языков для этого пришлось бы использовать кроме цикла ещё и конструкцию if-else, то есть немного усложнять код. Python позволяет встроить условие else прямо внутрь цикла.
В циклах в языке Python можно использовать ещё два оператора:
● break прерывает цикл, например, при выполнении конкретного условия. Его используют, если при каком-то значении переменной работу цикла нужно немедленно прекратить.
● continue, наоборот, мгновенно заставляет программу перейти к началу цикла и начать следующую итерацию. Его используют, чтобы при определённых условиях пропустить часть действий из тела цикла и сразу начать новое повторение.
Циклы помогают создавать более сложные инструкции:
● Повторение кода заранее неизвестное количество раз. Число повторений будет зависеть от переменной, которая изменяется в другой части кода.
● Изменение переменной из условия цикла. Она будет изменяться в теле цикла в зависимости от логики работы программы, увеличивать или уменьшать количество итераций или не давать циклу завершиться. Например:
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('Конец цикла')
Николай Федосеев
Циклы — одна из базовых конструкций любого языка программирования. Ни один алгоритм или программа не обходятся без использования циклов для выполнения однотипных конструкций языка или блоков кода. Программисту важно понимать, как работают циклы, в какой области применяются, какие у них есть особенности и ограничения. Только так он сможет писать эффективный код и решать продуктовые задачи.
Читать также: