Загрузка...

Цикл while

На прошлой странице for шёл по уже готовым значениям: числам из range или буквам tea. while готового списка не несёт. Перед строками с отступом, перед каждым шагом, включая первый, стоит вопрос. True значит: эти строки выполняются. Если число внутри не меняется, вопрос так и не станет False, и цикл не кончится.

Поставьте cups в 0. Вопрос: cups < 3. Ноль проходит, поэтому пишется 0, и cups сдвигается на один. То же с 1, потом с 2. После двойки cups равен 3. Вопрос не проходит. Тройки на экране нет. Она осталась в cups, и именно поэтому вопрос не прошёл.

0, 1 и 2, потом стоп

python
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 решил остановиться.

Цикл не входит, потом done

python
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. У следующей другая работа: прервать цикл или пропустить один шаг, ещё до того как вопрос провалится сам.

Сначала угадайте

  1. cups начинается с 0, вопрос — cups < 3. Какие числа пишутся?
  2. После цикла какое число осталось в cups, хотя его не написали?
  3. cups начинается с 3, done на одном уровне с while. Что появляется?
  4. Вы удаляете 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, и цикл не кончается.
Следующая страница может прервать цикл или пропустить один шаг.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
5
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху