Введение
Циклы — одна из фундаментальных концепций языков программирования. Циклы полезны, когда вы хотите повторить определенный блок кода несколько раз, пока не будет выполнено определенное условие.
В Python есть две основные конструкции цикла for
и while
.
Этот учебник иллюстрирует основы циклов while
в Python. Мы также покажем вам, как использовать оператор else
и операторы break
и continue
.
Python во время цикла
Цикл while
выполняет свои операторы неизвестное количество раз, пока данное условие не станет true
.
Цикл while
Python имеет следующую форму:
while EXPRESSION:
STATEMENT(S)
Оператор while
начинается с ключевого слова while
, за которым следует условное выражение.
Параметр EXPRESSION
оценивается перед выполнением инструкций. Если условие оценивается как true
, выполняется STATEMENT(S)
. В противном случае, если условие оценивается false
, цикл прекращается, и управление программой передается следующему оператору.
Блок STATEMENT(S)
начинается с отступа и заканчивается первой строкой без отступа. Большинство людей предпочитают использовать отступ в 4 или 2 пробела. Официальное руководство по стилю для кода Python рекомендует использовать 4 пробела на уровне отступа и избегать смешивания табуляции и пробелов для отступа.
Давайте взглянем на следующий пример кода, который увеличивает и печатает текущее значение переменной i
, если оно меньше пяти:
i=0
while i < 5:
i += 1
print('number:', i)
Цикл повторения продолжается до тех пор, пока i
не станет меньше или равно пяти. Он выдаст следующий результат:
number: 1
number: 2
number: 3
number: 4
number: 5
Python поддерживает стандартные операции сравнения:
a == b
— Истинно, еслиa
иb
равны.a!= b
— Истинно, еслиa
иb
не равны.a > b
— Истинно, еслиa
больше, чемb
.a >= b
— True, еслиa
равно или большеb
.a < b
— True, еслиa
меньшеb
.a <= b
— True, еслиa
равно или меньшеb
.
Чтобы инвертировать условное выражение, используйте логический оператор not
:
i=0
while not i >= 5:
i += 1
print('number:', i)
Операторы break и continue
Операторы break
и continue
позволяют управлять выполнением цикла while
.
Оператор break
завершает текущий цикл и передает управление программе оператору, следующему за прерванным циклом. Наиболее распространенная ситуация — использовать break
для завершения цикла при выполнении определенного условия.
В следующем примере выполнение цикла останавливается, когда текущий итерируемый элемент равен 2
.
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
Number: 1
Оператор continue
завершает текущую итерацию цикла и передает управление программе следующей итерации цикла.
В следующем примере, когда текущий итерируемый объект становится равным 2
, оператор continue continue
его вернуться к началу цикла и продолжить следующую итерацию.
i=0
while i < 5:
i += 1
if i == 2:
continue
print('number:', i)
number: 1
number: 3
number: 4
number: 5
Остальное
В отличие от других языков, в Python цикл while
имеет необязательное условие else
:
while EXPRESSION:
STATEMENT(S)
else:
STATEMENT(S)
Операторы в предложении else
выполняются только тогда, когда EXPRESSION
оценивается как false
. Если возникает исключение или если цикл заканчивается оператором break
, он не будет выполнен.
Вот пример:
i=0
while i < 5:
i += 1
print('number:', i)
else:
print('Loop completed.')
number: 1
number: 2
number: 3
number: 4
number: 5
Loop completed.
Давайте посмотрим, что происходит, когда вы используете оператор break
для выхода из схемы:
i=0
while i < 5:
i += 1
if i == 2:
break
print('number:', i)
else:
print('Loop completed.')
Оператор внутри предложения else
не выполняется, поскольку выражение не имеет значения false
:
Number: 1
Предложение else
с циклом while
используется нечасто. Распространенная ситуация, когда вы планируете разорвать цикл, и если цикл продолжает работать до тех пор, пока не будет оценено false
условие, вы можете выполнить некоторые операторы или функции.
Бесконечный цикл
Бесконечный цикл — это цикл, который повторяется бесконечно и никогда не заканчивается, пока программа не завершится. Если условие всегда оценивается как истинное, получается бесконечный цикл.
Бесконечные циклы обычно используются, чтобы заставить программу ожидать возникновения внешнего события. Как правило, в Python бесконечный цикл создается с помощью while True:
вместо True
вы также можете использовать любое другое выражение, которое всегда возвращает true
.
Вот пример бесконечного цикла while
, который будет постоянно просить вас ввести « Да »:
while True:
i = input('Please enter \'Si\': ')
if i.strip() == 'Si':
break
Цикл while
будет работать до тех пор, пока вы не введете «Да»:
Please enter 'Si': 3
Please enter 'Si': l
Please enter 'Si': 3
Please enter 'Si': No
Please enter 'Si': Si
Другой способ завершить бесконечный цикл — нажать CTRL+C
При написании бесконечных циклов обязательно используйте оператор break
для выхода из цикла в какой-то момент.
Вывод
Цикл while
многократно выполняет свои операторы, пока данное условие оценивается как true
.