Цикл while
в Python похож на родительскую раздачу ценных указаний в стиле: «Пока ты не приберешь свои вещи, мы не пойдем гулять». Или так: While беспорядок == True (истина), сидим дома
. Однако родителю из мира Python стоит отдать должное: не теряя надежды он то и дело заглядывает в детскую комнату и проверяет наличие беспорядка. Как только выполнится поставленное родителем условие, то есть беспорядок станет False
, цикл проверок остановится, и родитель сконцентрируется на дальнейших планах.
Краткий ликбез по синтаксису цикла while
В простейшем случае синтаксис цикла while выглядит так:
while [условие True]:
[выполняем действия]
Действия будут выполняться до тех пор, пока сохраняется истинность условия. Как только условие станет ложным, цикл завершится без выполнения действий, и программа перейдет к исполнению кода, следующего за циклом. Таким образом, в отличие от цикла for, при использовании цикла while нет необходимости знать заранее число итераций.
Цикл while в Python — примеры кода
Пример №1
Вы — персонаж интересной компьютерной игры. Ваш жизненный потенциал измеряется кармой. Пока карма > 0, на экране выводится строка «Я живчик!», после чего карма уменьшается на единицу. Как только карма станет ниже нуля, вы проиграете и на экране выведется строка «Игра окончена.». Напишем цикл while, контролирующий ваше участие в игре и зададим начальное значению параметру karma = 5:
karma = 5
while karma > 0:
print("Я живчик!")
karma = karma - 1
print("Игра окончена.")
Пример №2
Закодируем семейную ситуацию, описанную в начале статьи. Необходимо создать цикл с условием: пока бардак дома — это истина, выводим строку «Сидим дома» и вызываем функцию cleening_home(). Функция cleening_home() содержит список результатов приборки на текущий момент. Из этого списка случайным образом образом выбирается один элемент. Если элемент равен «Чисто! Ура!», то функция возвращает False, в остальных случаях функция возвращает True.
import random
trash = True
# возвращает True или False в зависимости от значения now_stage:
def cleaning_room():
cleening_stages = ["Очень грязно", "Просто грязно" "Почти чисто", "Чисто! Ура!"]
now_stage = random.choice(cleening_stages)
if(now_stage == "Чисто! Ура!"):
return True
else:
return False
# пока беспорядок, выводим сообщение "Сидим дома"
while trash == True:
print("Сидим дома!")
# Запрашиваем информацию о состоянии комнаты на текущий момент
trash = cleaning_room()
# Если trash == False, выходим из цикла и выводим сообщение о прогулке:
print("Ура! Идем гулять!")
Пример №3
Запрашиваем у пользователя пароль до тех пор, пока введенный им ответ не совпадает со строкой «123456789». Как только строки совпадут, выводим фразу «Верный пароль!»
password = input("Введите пароль: ")
while password != "123456789":
password = input("Введите пароль: ")
print("Верный пароль!")