Циклы while
133
Цикл повторяется, пока условие
current_number
<=
5
остается истинным. Так как
1 меньше 5, Python выводит 1, а затем увеличивает значение на 1, отчего
current_
number
становится равным 2. Так как 2 меньше 5, Python выводит 2 и снова при-
бавляет 1, и т. д. Как только значение
current_number
превысит 5, цикл останавли-
вается, а программа завершается:
1
2
3
4
5
Очень многие повседневные программы содержат циклы
while
. Например, пред-
ставьте компьютерную игру: цикл
while
выполняется, пока игра продолжается,
и завершается, как только игрок захочет остановить игру. Вряд ли кого-нибудь
обрадует, если программа завершает работу преждевременно или продолжа-
ет работать, когда ей приказали остановиться, так что циклы
while
весьма по-
лезны.
Пользователь решает
прервать работу программы
Программа
parrot .py
может выполняться, пока пользователь не захочет остановить
ее, — для этого большая часть кода заключается в цикл
while
. В программе опре-
деляется
признак завершения
, и программа работает, пока пользователь не введет
нужное значение:
parrot.py
❶
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
❷
message = ""
❸
while message != 'quit':
message = input(prompt)
print(message)
В точке
определяется сообщение, которое объясняет, что у пользователя есть два
варианта: ввести сообщение или ввести признак завершения (в данном случае это
строка
'quit'
). Затем переменной
message
присваивается значение, введенное
пользователем. В программе переменная
message
инициализируется пустой стро-
кой
""
, чтобы значение проверялось без ошибок при первом выполнении строки
while
. Когда программа только запускается и выполнение достигает команды
while
, значение
message
необходимо сравнить с
'quit'
, но пользователь еще не
вводил никакие данные. Если у Python нет данных для сравнения, продолжение
выполнения становится невозможным. Чтобы решить эту проблему, необходимо
предоставить
message
исходное значение. И хотя это всего лишь пустая строка, для
Python такое значение выглядит вполне осмысленно; программа сможет выполнить
сравнение, на котором основана работа цикла
while
. Цикл
while
выполняется,
пока значение
message
не
равно
'quit'
.