Python – один из самых широко используемых языков в настоящее время. Как и почти все другие языки программирования, в Python есть конструкция цикла. Циклы Python, такие как цикл for и цикл while, позволяют разработчикам выполнять итерации по коллекциям или на основе различных условий.
В этом учебнике вы узнаете, как создавать и использовать каждый тип цикла Python, а также как управлять циклами с использованием операторов Python break
, pass
и continue
.
Приступим!
Предварительные требования
Этот пост будет шаг за шагом. Если вы хотите следовать за ним, убедитесь, что у вас установлен Python v3.6 или более поздняя версия. В этом учебнике будет использоваться Python v3.9.2 на машине с Windows 10.
Понимание итерируемых конструкций Python
Прежде чем вы начнете изучать циклы, вы должны узнать о концепции итерируемых объектов Python. Циклы обрабатывают коллекции элементов, таких как списки, кортежи и словари. Каждая из этих конструкций содержит несколько элементов, по которым можно “проходить”. Таким образом, каждая конструкция является итерируемой с элементами, которые цикл может обрабатывать индивидуально.
Когда вы слышите, что кто-то говорит о чем-то итерируемом, знайте, что это элемент, который вы можете прочитать с помощью цикла каждый объект внутри этой коллекции.
Циклы For в Python
Давайте начнем этот учебный курс, изучив сначала циклы for. Циклы for повторяют выполнение операторов или блока операторов, управляемых итерируемым выражением. Другими словами, они выполняют код для каждого элемента внутри коллекции элементов.
Циклы For и строки
Например, возможно, у вас есть итерируемый элемент, такой как строка. В Python строка – это последовательность символов. Каждая строка состоит из комбинации символов. Возможно, у вас есть строка ADAM
. Эта строка состоит из четырех итерируемых символов, A
, D
, A
и M
.
Как одна строка, Python видит только один элемент; ADAM
, как показано ниже.

Но поскольку строки Python итерируемы, Python может “разбить” эту строку на массив символов и затем обработать каждый символ по очереди. Для этого вы создадите цикл for, как показано ниже.
Цикл for имеет цель или итератор (letter
в данном случае), чтобы представить каждую итерацию. Затем вы скажете Python, какой итерируемый элемент вы хотели бы обработать (ATA
) с использованием ключевого слова in
. Каждый символ в массиве символов в строке.
Затем, внутри цикла for, вы создадите любой код, который вы хотите выполнить для каждой итерации. В этом примере Python просто печатает каждый символ в массиве символов (строке).
Вы можете увидеть ниже, что Python печатает каждый символ в строке по одному.

Циклы for могут перебирать любые итерируемые элементы, такие как списки и диапазоны. Замените
ATA
в примере этого раздела наrange(5)
, и вы увидите тот же результат.
Циклы While в Python
В то время как циклы for выполняют код для каждого элемента в коллекции элементов, цикл while выполняет код на основе определенного условия. Более конкретно, Python продолжает выполнение цикла while, пока условие ложно.
Например, распространенным требованием в Python является создание счетчика и выполнение кода определенное количество раз. Для создания этой ситуации вам нужно определить условие, которое вернет True
, когда текущий счет превысит максимальный счет.
Допустим, вы начинаете с переменной с именем count
, содержащей целое число 0. Вы хотели бы увеличить это целое число на 1, но не превышать 5. Вы можете создать что-то вроде этого:
Вышеуказанный код может работать, но это совсем неэффективно. Вы не используете принцип DRY. Вы повторяете себя. Вместо этого сократите длину кода, используя цикл while и указывая Python добавлять один к count
пока count
меньше шести.
Приведенные ниже примеры используют цикл while для определения условия (count < 6
) и выполнения выражения (оператор print
и увеличение count
на 1 пока условие True
.

Управление потоком в циклах
В предыдущих двух примерах как цикл for, так и цикл while в Python начинались и заканчивались самостоятельно. Цикл for завершался, когда достигал конца перечисляемой коллекции, а цикл while заканчивался, потому что его условие оценивалось как истинное.
Хотя обычно циклы в Python заканчиваются “нормально”, вы также можете изменить поведение цикла, чтобы он завершался преждевременно или пропускал одну или несколько итераций.
Команда Break
Если вам нужно преждевременно завершить цикл, вы можете сделать это с помощью команды break. Когда она выполняется внутри цикла, команда break останавливает цикл на текущей итерации.
Обычно вы будете использовать команду break, когда внутри цикла выполняется определенное условие. Например, в предыдущем примере цикла for вы узнали, что цикл for проходит по массиву символов в строке. Возможно, вы хотите обработать только все символы до первой буквы D.
Чтобы остановить цикл for (или даже цикл while), определите определенное условие, которое вы хотите сопоставить, а затем добавьте команду break, как показано ниже.
В примере ниже Python завершает цикл for в тот момент, когда переменная-итератор letter становится равной D.

Команда Continue
Возможно, вам нужно создать цикл на основе определенного условия, но не обрабатывать каждый элемент. В этом случае вы можете пропустить итерации с помощью команды continue.
В отличие от оператора break
, который завершает всю итерацию, оператор continue
пропускает текущую итерацию. Используя приведенный выше пример, возможно, вам захочется перебрать каждый символ в строке ADAM
, но пропустить символ D
. Вы можете пропустить символ D
, используя условие (if letter == "D"
) и оператор continue
, как показано ниже.
Вы можете видеть ниже, что Python не вернул символ D
, потому что оператор continue
пропустил оператор print
, когда встретил символ D
.

Оператор pass
Давайте завершим раздел управления потоком с оператором pass
. Оператор pass
немного уникален тем, что это всего лишь заполнитель. Оператор pass
является способом определения цикла в скрипте Python, который на самом деле ничего не делает.
Предположим, у вас есть цикл for, который вы предпочли бы оставить в своем скрипте Python по какой-то причине. Но у вас на самом деле нет выражения для выполнения внутри него, как показано ниже.
Когда вы определяете цикл for в Python с выражением внутри, Python вернет ошибку IdentationError, как показано ниже.

Но добавьте оператор pass
как выражение внутри цикла for
, и вы увидите, что Python выполняет цикл for, по сути, ничего не делая.

Вывод
В этом учебнике вы узнали, как начать работу с циклами в Python. Понимание того, как работают циклы в Python и умение управлять ими, открывают вам гораздо больше возможностей для создания и разработки надежных программ на Python.
С вашим недавно полученным знанием, куда вы вставите цикл в свой код?