Python Tutorials

Полное руководство по циклу while в Python

Spread the love

Цикл while — мощный инструмент в Python для управления потоком выполнения программ. В отличие от циклов for, которые итерируют по заданной последовательности, циклы while продолжают выполнение, пока заданное условие остаётся истинным. Это делает их особенно полезными, когда количество итераций неизвестно заранее.

Оглавление

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *