Цикл while
На прошлой странице for шёл по уже готовым значениям: числам из range или буквам tea. while готового списка не несёт. Перед строками с отступом, перед каждым шагом, включая первый, стоит вопрос. True значит: эти строки выполняются. Если число внутри не меняется, вопрос так и не станет False, и цикл не кончится.
Поставьте cups в 0. Вопрос: cups < 3. Ноль проходит, поэтому пишется 0, и cups сдвигается на один. То же с 1, потом с 2. После двойки cups равен 3. Вопрос не проходит. Тройки на экране нет. Она осталась в cups, и именно поэтому вопрос не прошёл.
cups = 0
while cups < 3:
print(cups)
cups = cups + 1
Три строки: 0, затем 1, затем 2. После цикла в cups лежит 3. Сам цикл эту 3 не печатает: print получает ход только если вопрос прошёл. Чтобы увидеть 3, напишите print на одном уровне с while, вне цикла.
Уже за пределом, строки с отступом не идут
Поставьте cups в 3 до while. Первый вопрос сразу не проходит. Строки внутри цикла не выполняются ни разу. done стоит на одном уровне с while, значит не входит в цикл и пишется один раз, после того как while решил остановиться.
cups = 3
while cups < 3:
print(cups)
cups = cups + 1
print("done")
На экране только done. Числа нет. print(cups) был внутри цикла, а цикл не начался.
Строка cups = cups + 1 двигает число, пока вопрос наконец не провалится. Уберите её: cups остаётся 0, cups < 3 остаётся True, и 0 пишется снова и снова. Программа из этого цикла не выходит.
После while нужно двоеточие, как после for и if. Строки, которые повторяются, сдвинуты на четыре пробела. Само слово с маленькой буквы. While с большой W — имя, которого Python не знает, и программа останавливается.
Следующая страница может оборвать раньше
Эта страница ждёт, пока сам вопрос станет False. У следующей другая работа: прервать цикл или пропустить один шаг, ещё до того как вопрос провалится сам.
Сначала угадайте
- cups начинается с 0, вопрос — cups < 3. Какие числа пишутся?
- После цикла какое число осталось в cups, хотя его не написали?
- cups начинается с 3, done на одном уровне с while. Что появляется?
- Вы удаляете cups = cups + 1. Цикл заканчивается?
Где ошибаются
- Принять последнюю 3 за напечатанную строку
- Ждать число, когда cups ещё до while уже равен 3
- Забыть cups = cups + 1 и ждать последней строки, которой не будет
- Забыть двоеточие после while
- Написать While с большой буквы
Что унести с собой
while спрашивает перед каждым шагом. Строки с отступом идут только пока ответ True.
С 0, при cups < 3, вы видите 0, 1 и 2. cups тогда равен 3, и эта 3 не печатается.
Если вопрос с самого начала False, те строки не выполняются никогда, а строка на уровне while выполняется один раз.
Без cups = cups + 1 вопрос остаётся True, и цикл не кончается.
Следующая страница может прервать цикл или пропустить один шаг.
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху