Цикл 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, и цикл остановится.
Задание
НовичокНапишите программу, которая получает на вход одно число типа 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Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение данных13Списки: продвинутый уровень
Срезы списков. Часть 1Срезы списков. Часть 2Операторы последовательностейПроверка вхождения2Переменные
ЧислаСтрокиЛогический типПравила именованияПустые переменныеИтоги — Инициализация переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileОператор BreakОператор ContinueПовторение: ФакториалФункция RangeВложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
ВыводВывод с переменнымиВводПриведение типовПовторение — До 120Повторение — Истина или ложь9Функции
Объявление функцииАргументыВозврат значенияПовторение — функция SigmaПовторение — функция валидацииЗначения по умолчанию12Итерация по последовательностям
Итерация по элементамФункция enumerateИтерация по строкам. Часть 1Итерация по строкам. Часть 2