Menu
Coddy logo textTech

Цикл While

Часть раздела Fundamentals путешествия по Python на Coddy. Урок 36 из 77.

Цикл while отличается от цикла for. Цикл for позволяет нам выполнять итерации по определенному range, в то время как цикл while позволяет продолжать итерации до тех пор, пока выполняется определенное condition.

Чтобы использовать цикл while, напишите:

while condition:
	code

Код выполнится, только если condition имеет значение True.

Условие обычно формируется с использованием операторов сравнения, таких как <= (меньше или равно), >= (больше или равно), < (меньше), > (больше) или == (равно). Цикл продолжается до тех пор, пока это сравнение возвращает True, и останавливается, как только оно становится False.

Внутри тела цикла вам обычно нужно **обновить** (update) проверяемую переменную. Это делается с помощью **операторов присваивания с операцией**, таких как += (сложение с присваиванием), -= (вычитание с присваиванием), *= (умножение с присваиванием) или /= (деление с присваиванием). Например, x *= 2 — это сокращенная запись для x = x * 2. Без обновления переменной условие никогда не изменится, и цикл будет выполняться бесконечно.

Есть много случаев использования, когда цикл while решит проблему, а цикл for — нет.

Например, рассмотрите такую задачу:

Найдите наименьшую степень 2, которая больше заданного числа.

Чтобы решить это, мы будем использовать цикл while, который будет многократно умножать текущую степень 2 на 2, пока она не станет больше данного числа:

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2

print(power_of_two)

Здесь power_of_two <= number — это условие, использующее оператор сравнения, а power_of_two *= 2 обновляет переменную на каждой итерации с помощью оператора составного присваивания. Как только power_of_two превысит number, условие станет False, и цикл остановится.

challenge icon

Задание

Новичок

Напишите программу, которая получает один input — число float.

Используйте цикл while, чтобы делить input на 2, пока number больше или равен 3.5.

Выведите первое number, которое меньше 3.5.

Попробуйте сами

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals

Потренируйтесь самостоятельно: Онлайн-компилятор Python