Menu
Coddy logo textTech

Цикл While

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

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

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

while condition:
	code

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

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

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

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

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

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

Чтобы решить эту задачу, мы будем использовать цикл while, который будет многократно умножать текущую степень двойки на 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

Задание

Новичок

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

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

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

Шпаргалка

Цикл while выполняется до тех пор, пока условие истинно (True):

while condition:
    code

Используйте операторы сравнения для формирования условия: ==, <, >, <=, >=.
Используйте комбинированные операторы присваивания для обновления переменной на каждой итерации: +=, -=, *=, /=.

number = 27
power_of_two = 1

while power_of_two <= number:
    power_of_two *= 2  # обновляем переменную, чтобы избежать бесконечного цикла

print(power_of_two)  # 32

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

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

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

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