
Циклы — одна из основополагающих концепций языков программирования. Циклы удобны, когда нужно повторить определённый блок кода несколько раз, пока не будет выполнено заданное условие.
В Python есть две основные конструкции циклов: циклы for и while .
В этом руководстве рассматриваются основы циклов while в Python. Мы также покажем, как использовать конструкцию else , а также операторы break и continue .
Цикл Python while
Цикл 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 )
Цикл Tue повторяется до тех пор, пока 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— Истина, еслиaравно или большеb. -
a < b— Истина, еслиaменьшеb. -
a <= b— Истина, если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 приведет к возврату выполнения в начало цикла и продолжению следующей итерации.
i = 0 while i < 5 : i += 1 if i == 2 : continue print ( 'number:' , i )
number: 1 number: 3 number: 4 number: 5
else Пункт
В отличие от других языков, в 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 , вы можете выполнить какой-либо оператор или функцию.
Бесконечный цикл while
Бесконечный цикл — это цикл, который повторяется бесконечно и не завершается до завершения программы. Если условие всегда выполняется, цикл бесконечен.
Бесконечные циклы обычно используются, чтобы заставить программу ожидать наступления какого-либо внешнего события. В Python бесконечный цикл обычно создаётся с помощью while True: Вместо True можно использовать любое другое выражение, которое всегда возвращает true .
Вот пример бесконечного цикла while , который будет постоянно предлагать вам ввести «Да»:
while True : i = input ( 'Please enter ' Yes ' : ' ) if i . strip () == 'Yes' : break
Приведенный выше цикл while будет выполняться до тех пор, пока вы не введете «Да»:
Please enter 'Yes': 3 Please enter 'Yes': l Please enter 'Yes': lin Please enter 'Yes': No Please enter 'Yes': Yes
Другой способ прекратить бесконечный цикл — нажать CTRL+C .
При написании бесконечных циклов обязательно используйте оператор break для выхода из цикла в определённой точке.
Заключение
Цикл while многократно выполняет свои операторы до тех пор, пока заданное условие оценивается как true .
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства