Цикл while
— мощный инструмент в Python для управления потоком выполнения программ. В отличие от циклов for
, которые итерируют по заданной последовательности, циклы while
продолжают выполнение, пока заданное условие остаётся истинным. Это делает их особенно полезными, когда количество итераций неизвестно заранее.
Оглавление
- Базовая структура цикла While
- Управление выполнением цикла:
break
иcontinue
- Конструкция
while-else
- Практические примеры
- Избегание бесконечных циклов
Базовая структура цикла While
Фундаментальный синтаксис цикла while
прост:
while condition:
# Код, который будет выполняться многократно
# ...
Условие condition
проверяется перед каждой итерацией. Если оно истинно (True
), выполняется блок кода с отступом. Если оно ложно (False
), цикл завершается, и программа продолжает выполнение с операторов, следующих за циклом.
Управление выполнением цикла: break
и continue
Операторы break
и continue
обеспечивают тонкозернистое управление поведением цикла:
break
: Немедленно выходит из цикла, независимо от условия.continue
: Пропускает оставшуюся часть текущей итерации и переходит к следующей итерации.
count = 0
while count < 5:
count += 1
if count == 3:
continue # Пропускаем вывод 3
print(count)
while count < 10:
count += 1
if count == 7:
break # Выходим из цикла, когда count равно 7
print(count)
Конструкция while-else
Цикл while
в Python уникально поддерживает необязательный блок else
. Этот блок else
выполняется только в том случае, если цикл завершается *естественным образом* — то есть, когда условие цикла становится False
. Важно отметить, что блок else
*не* выполняется, если цикл прерывается оператором break
. Это обеспечивает чистый способ обработки ситуаций, когда необходимо выполнить действие только тогда, когда цикл завершается без прерывания.
count = 0
while count < 5:
print(count)
count += 1
else:
print("Цикл завершен нормально!")
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print("Цикл НЕ завершен нормально!") # Это не будет выведено
Практические примеры
Вот несколько примеров, демонстрирующих практическое применение циклов while
:
Пример 1: Проверка ввода пользователя
while True:
try:
age = int(input("Введите ваш возраст: "))
if age >= 0:
break # Выход из цикла, если введён корректный возраст
else:
print("Возраст не может быть отрицательным.")
except ValueError:
print("Неверный ввод. Пожалуйста, введите число.")
print(f"Ваш возраст: {age}")
Пример 2: Симуляция обратного отсчёта
import time
countdown = 10
while countdown > 0:
print(countdown)
time.sleep(1) # Пауза на 1 секунду
countdown -= 1
print("Запуск!")
Избегание бесконечных циклов
Распространённая ошибка при работе с циклами while
— создание бесконечного цикла — цикла, который никогда не завершается. Обычно это происходит, когда условие цикла никогда не становится False
. Всегда убедитесь, что ваше условие цикла в конечном итоге примет значение False
. Тщательно проверьте логику вашего цикла и убедитесь, что переменные, влияющие на условие, обновляются должным образом внутри тела цикла.