ЦиклКонструкция, повторяющая блок кода: for перебирает элементы, while — пока условие истинно.for хорош, когда число повторений известно («пройди по списку», «повтори 5 раз»). Но бывает иначе: «лей воду, пока стакан не наполнится» — сколько раз лить, заранее не скажешь. Для таких случаев есть цикл while («пока»): он повторяет тело, пока условие истинно.
▶ while.py
Разберём логику обратного отсчёта:
Перед каждым проходом Python проверяет count > 0.
Если True — выполняет тело и печатает остаток.
СтрокаТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str).count = count - 1 уменьшает счётчик, постепенно приближая условие к False.
Когда count станет 0, условие ложно — цикл заканчивается.
🚫Внимание
Бесконечный цикл — главная опасность while. Если условие никогда не станет ложным (например, забыли строку count = count - 1), программа зависнет навсегда. Всегда меняйте переменнуюИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5. условия внутри цикла. У нас в песочнице есть защита: цикл прервётся через 15 секунд.
💡Совет
Предскажите вывод. Сколько раз выполнится тело цикла ниже? Подсказка: следите за n — оно удваивается, пока меньше 10.
▶ predict-while.py
Напечатается 1, 2, 4, 8 — четыре раза. На пятой проверке n станет 16, условие 16 < 10 ложно, цикл остановится.
break и continue
Иногда нужно выйти из цикла досрочно или пропустить один шаг:
break — немедленно выходит из цикла целиком.
continue — пропускает остаток текущего шага и переходит к следующему.
▶ break.py
⚠️ Частые ошибки новичков
Ошибка. Забыть менять переменную условия — получится бесконечный цикл. В коде ниже count никогда не уменьшается, поэтому count > 0 всегда True. Почините: добавьте внутри цикла строку count = count - 1 (защита оборвёт его через 15 секунд, но цель — исправить логику).
▶ broken-while.py
Заданиерешение.py
Дано число n = 1. Удваивайте его в цикле while, пока оно меньше 1000. Сохраните итог в n. Какое первое значение ≥ 1000 получится?
Заданиерешение.py
Считайте сумму чисел 1, 2, 3, ... в переменной total, пока сумма не превысит 50. Сохраните в total первое значение, которое больше 50.
Заданиесредняярешение.py
Дано число n = 40325. Посчитайте, сколько в нём цифр, с помощью цикла while: пока число больше 0, отбрасывайте последнюю цифру делением n // 10 и увеличивайте счётчик. Ответ сохраните в digits.
❓Проверь себя
Что делает оператор break внутри цикла?
Из-за чего возникает бесконечный цикл while?
Чем continue отличается от break?
ℹ️Важно
✅ Что вы узнали
while повторяет тело, пока условие истинно.
Подходит, когда число повторений заранее неизвестно.
Обязательно меняйте переменную условия, иначе цикл зависнет.
break выходит из цикла, continue пропускает текущий шаг.
Комментарии
Загрузка…
Загрузка комментариев…