Python Do While | Документы с примерами

В Python нет встроенного цикла do-while, как в некоторых других языках (например, C, Java). Однако вы можете смоделировать поведение цикла do-while, используя цикл while.

Что такое цикл Do-While?

Цикл do-while гарантирует, что блок кода будет выполнен хотя бы один раз перед проверкой условия. Типичная структура в других языках выглядит следующим образом:

// Example in C
int x = 0;
do {
    printf("x is: %d\n", x);
    x++;
} while (x < 5);

Это гарантирует, что цикл будет выполнен хотя бы один раз, даже если в начале условие было ложным.

Моделирование цикла Do-While в Python

В Python вы можете добиться аналогичного поведения, используя цикл while с условием прерывания внутри:

x = 0
while True:
    print("x is:", x)
    x += 1
    if x >= 5:
        break

Объяснение:

  • Цикл while True: выполняется бесконечно.
  • Тело цикла выполняется по крайней мере один раз.
  • Оператор break завершает цикл, когда выполняется условие.

Другой подход: Использование while с флагом

Другой способ имитировать цикл do-while в Python - это инициализировать флаг:

x = 0
do_continue = True

while do_continue:
    print("x is:", x)
    x += 1
    do_continue = x < 5

Объяснение:

  • Переменная do_continue гарантирует, что цикл будет выполнен хотя бы один раз.
  • Условие цикла обновляется в конце каждой итерации.

Распространенные варианты использования шаблона Do-While

  • Проверка пользовательского ввода: убедитесь в правильности введенных пользователем данных, прежде чем продолжить.
  • Программы, управляемые меню: запуск цикла выполнения программы до тех пор, пока пользователь не решит выйти.
  • Обработка потоков данных: Обработка входных данных до тех пор, пока не будет выполнено условие остановки.

Пример: Проверка правильности пользовательского ввода

while True:
    num = input("Enter a positive number: ")
    if num.isdigit() and int(num) > 0:
        break
    print("Invalid input, try again.")
print("You entered:", num)

Основные выводы

  • В Python нет цикла do-while, но его можно смоделировать с помощью while True и break.
  • Используйте переменную flag для управления выполнением цикла, когда это необходимо.
  • Этот шаблон полезен для проверки пользовательского ввода, меню и обработки данных в проектах на Python.

Практическое упражнение

Вот простая задача: откройте свой редактор Python и попробуйте написать скрипт на Python, который будет запрашивать пароль до тех пор, пока не будет введен правильный:

correct_password = "python123"
while True:
    password = input("Enter password: ")
    if password == correct_password:
        print("Access granted.")
        break
    print("Incorrect password, try again.")

Сворачивание

Хотя в Python отсутствует цикл do-while, его поведение легко моделируется с помощью while True с помощью break. Понимание этого шаблона поможет вам справиться со сценариями, в которых необходимо выполнить хотя бы одно действие, прежде чем проверять условия. Приятного написания кода!