Содержание
Python – цикл while
Цикл while
в Python будет выполнять заданное выражение или блок кода до тех пор, пока заданное условие будет считаться истиной (true).
Синтаксис
Синтаксис цикла while
в Python такой:
while условие: действие(я)
Тут действие(я) могут быть либо одним выражением, или набором выражений – блоком кода. Условие можно быть любым выражением, а условие будет считаться истиной (true), если результат не равен нулю или не пустой. Цикл будет выполняться пока условие будет считаться истиной.
Когда условие будет считаться как ложь (false) – программа передаст выполнение следующему после цикла участку кода.
В Python все выражения, имеющие одинаковые отступы в одной конструкции будет считаться единым блоком кода.
Ключевым моментом цикла while
является то, что он может вообще не быть запущен при выполнении программы. Если выражение проверено и его результат – ложь, то всё тело цикла будет пропущено, и будет выполнено следующее после цикла выражение.
Пример
count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"
Результат выполнения:
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
Бесконечный цикл while
Цикл становится бесконечным если условие никогда не станет ложью – поэтому вы должны относиться с вниманием к циклам, в которых используется while
. Такие циклы называются “бесконечным циклом”.
Бесконечные циклы могут полезны в клиент-серверном программировании, где сервер должен работать постоянно, что бы клиенты могли с ним работать.
var = 1 while var == 1 : # This constructs an infinite loop num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!"
Будучи запущенным, такой код приведёт к такому результату:
$ ./1.py Enter a number :3 You entered: 3 Enter a number :4 You entered: 4 Enter a number : You entered: Enter a number :3 You entered: 3 Enter a number :5 You entered: 5 Enter a number :6 You entered: 6 Enter a number :1 You entered: 1 Enter a number :^CTraceback (most recent call last): File "./1.py", line 5, in <module> num = raw_input("Enter a number :") KeyboardInterrupt
В этом примере будет выполняться бесконечный цикл, пока вы не нажмёте комбинацию Ctrl+C, что бы прервать выполнение программы.
Использование оператора else с циклом while
В Python допустимо использование оператора else
, связанного с циклом:
- если оператор
else
используется с цикломfor
– он будет выполнен, когда список для цикла будет завершен; - при использовании
else
вместе с цикломwhile
– он будет использован, когда условие примет значение ложь (false).
В следующем примере демонстрирует ся использование оператора else
с циклом while
, который выводит сообщение до тех пор, пока счётчик меньше 5, после чего будет выполнение действие оператора else
:
count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"
Результат его выполнения:
0 is less than 5 1 is less than 5 2 is less than 5 3 is less than 5 4 is less than 5 5 is not less than 5
Цикл while с одним выражением
По аналогии с оператором if
– если цикл while
содержит единственное действие, то оно может быть помещено в той же строке:
flag = 1 while (flag): print 'Given flag is really true!' print "Good bye!"