Циклы – конструкции для многократного исполнения команд в зависимости от условий. Каждое повторение инструкций называют итерацией. Рассмотрим особенности работы с ними в Python.
Пока мы не перешли к “мясу”, обратите внимание на онлайн курсы по python на eddu.pro.
Циклы в Python: что такое, особенности
Код в Python выполняется последовательно, однако это правило можно нарушить. Циклы позволяют выполнять один блок кода много раз. Они состоит из:
- тело цикла – последовательность совершаемых действий;
- условия их окончания – выражение, которое определяет, цикл завершится или будет выполняться дальше.
Условием завершения повторений кода может быть число (итераций) или условие – проверка переменной из тела. Особенность работы с циклами в Python – оператор else. Перед их завершением можно выполнить определённое действие, для чего в других языках программирования используют конструкцию if — else.
Для понимания рассмотрим код.
Программа будет выводить на дисплей сообщения «число = x», пока выполняется условие: число меньше 6. Когда переменная станет равной «шестёрке», цикл завершится, на экране появится уведомление об этом.
Дополнительно в циклах Python используют пару операторов:
- break – инструмент управления потоком, прерывание цикла;
- continue – пропуск итерации либо переход к следующей.
Для чего применяют
Конструкции для многократного повторения команд сокращают код, время его набора, ускоряют работу программиста. Вместо десятков и даже тысяч строк кода (первый) можно получить компактный (второй).
На примере выводится 5 строчек, а если их будет несколько десятков либо тысяч? В первом случае для отображения каждой строчки придётся набирать строку кода.
Циклы помогают:
- Повторять выполнение кода большое или заранее неизвестное количество раз.
- Изменять значение переменной в его теле в зависимости от заданных условий, например, увеличивать число итераций.
Для примера рассмотрим код.
Приложение отобразит на дисплее числа в диапазоне от 0…10, которые делятся на 2: изначально переменной count присвоено значение «0», но с каждой итерацией оно увеличивается на 2. Тело цикла при этом влияет на число итераций: если взять 3, их будет меньше.
Конструкции для повторения выполнения кода в Python имеют тонкости и особенности: можно использовать дополнительные операторы, степени вложенности, различные функции в теле цикла.
Виды
В языке программирования Пайтон различают несколько видов циклов. Это:
- For – применяется для повторения действия определённое, обычно известное, количество раз. Данными для него могут выступать списки, переменные, словари, диапазоны и прочие итерируемые объекты.
- While – с предусловием. Актуален, если количество итераций не известно. Оператор (-ы) будет выполняться до выполнения указанного условия.
Do-while – с постусловием – условие в нём проверяется после выполнения итерации.
Конструкция while
Циклы с предусловием применяют, если изначальное число итераций неизвестно, его определяют принимаемые переменной значения. Блок инструкций будет выполняться до момента, пока условие остаётся верным, истинным. Для завершения выполнения кода значение константы должно изменяться, чтобы в конечном счёте выражение стало ложным.
Рассмотрим на практике.
Изначально переменная равна единице, на экран выводится сообщение в скобках, но с каждой итерацией она увеличивается на единицу, пока не станет равной 10: while i < 10 – зацикливание будет прервано.
Конструкция for
Более сложный оператор. Его применяют, если число повторений зависит от количества заданных в условии элементов.
Он имеет следующий вид:
for [переменная] in [последовательность элементов]
[тело – выполняемые операции]
Приведённый выше код будет выводить сообщения вида «Число x», пока не отобразит на дисплее все присвоенные переменной значения в диапазоне 1 — 5 умноженные на 10: 10, 20, 30, 40, 50.
Переменные const и n можно задать в теле программы: это конкретные значения, их диапазон; попросить пользователя ввести вручную или взять из других источников, например, как результат выполнения функции.
В программу можно добавить оператор else, который выполняется после последней итерации. На примере он уведомляет о завершении итераций.
Особенность оператора for – нельзя изменять значение переменной или итерируемого объекта i. С его помощью выводят параметры либо проводят промежуточные вычисления. Для её изменения используют while.
Аналог do — while
В Python, в отличие от других языков программирования, нет конструкции do — while, которая применяется, когда численность итераций заранее не известна. Блок операторов выполняется до тех пор, пока не будет выполнено указанное условие. В качестве аналога используют бесконечный цикл, в тело которого прописывают условие его завершения.
Переменная равна 10 – это истина (true). Её значение увеличивается на единицу, выводится на дисплей, а затем происходит проверка условия: не больше ли оно 8. Так как x > 8 (равняется 10), зацикливание прерывается.
Бесконечные
Цикл while становится бесконечным, если не возникает ситуации, когда условие становится ложным.
Переменной присвоено значение 3 (меньше 6), выражения прибавления ему единицы x = x+1 нет. Итог: условие всегда будет истинным, значит, цикл будет выполняться бесконечно. При разработке и отладке программного обеспечения необходимо следить за выполнением условий, иначе приложение придётся завершать принудительно. Если оно потребляет много ресурсов – компьютер может зависнуть.
Бесконечные циклы иногда бывают полезными, например, когда нужно периодически выполнять действия: что-то проверять, отображать на дисплее.
Вложенные
Такие конструкции используются для обработки двумерных массивов. Для понимания рассмотрим код.
Первый цикл for – внешний. Он выполняется два раза, переменная принимает значения в диапазоне 1…3. Внутри расположен второй for, его значения колеблются от 3 до 5.
В итоге будет выведено 6 строк информации. Первый цикл выполнится дважды: для двойки и тройки, второй – шесть раз: по три для каждой итерации первого.
Результат будет следующим.
Вложенный цикл выполняется для i = 2 – выводятся значения от 3 до 5, затем то же самое для i = 3.
Выход из цикла и пропуск итераций
Для прерывания зацикливания ещё до выполнения условия используют оператор break.
Переменной присвоено значение 3, но с каждой итерацией оно увеличивается на единицу. Пока оно меньше 10, число выводится на экран, но здесь мы добавили оператор управления потоком break, который прерывает выполнение цикла при достижении переменной значения 6.
Вторая схожая инструкция – continue. Её применяют для пропуска текущей или перехода к следующей итерации.
Переменная равна нулю, с каждой итерацией она увеличивается на единицу. Если равняется четырём, прибавляем к ней единицу и переходим дальше, пропуская команду вывода на дисплей. Когда значение x достигнет семёрки, цикл прерывается.
Циклы минимизируют объём кода, позволяют выполнять инструкции заранее неизвестное число раз, автоматизировать периодические операции. Они состоят из тела и условия. В Python два типа операторов для организации циклов: for и while, а также операторы:
- прерывания – break;
- перехода к следующей итерации – continue;
- совершения одной операции перед выходом из цикла – else.
Циклы можно вкладывать один в другой и делать бесконечными, чего обычно избегают.
Для освоения всех нюансов и примеров использования зацикливания на практике рекомендуем пройти курс по программированию на Python.