О циклах while

Завершено

При написании кода у вас часто возникает необходимость создать задачу, которая будет выполняться неизвестное количество раз. В этом уроке вы хотите разрешить пользователю вводить список названий планет. К сожалению, вы не знаете, сколько имен вводит пользователь. Для поддержки повторения цикла неизвестное число раз можно использовать цикл while.

Цикл while выполняет операцию, пока определенное условие истинно. Можно использовать while цикл для:

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

Важно!

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

Синтаксис цикла while похож на оператор if. Вы предоставляете условие и код, которые должны выполняться, пока условие истинно.

Цикл while состоит из трех важных частей:

  • Ключевое словоwhile, за которым следует пробел.

  • Условие, которое вы тестируете. Если условие имеет значение true, код в цикле while выполняется.

  • Код, который требуется запустить для каждой итерации, отступ с вложенным пробелом. Например:

    while <condition>:
        # code here
    

Давайте посмотрим, как можно создать код для запроса пользователей ввести значения, а затем разрешить им вводить данные после завершения ввода значений. В нашем примере входные данные пользователя — это условие, которое тестируется в верхней части while цикла.

user_input = ''

while user_input.lower() != 'done':
    user_input = input('Enter a new value, or done when done')

Обратите внимание, что вы используете input для запроса пользователей. Каждый раз, когда пользователь вводит новое значение, оно изменяет условие, то есть цикл while будет завершен после ввода команды done.

Примечание.

В нашем примере мы использовали lower для преобразования входных данных в нижний регистр, что позволяет выполнять сравнение без учета регистра.

Вы можете использовать только что введенную строку, как и любую другую строку, которая захватывается с помощью input. Если вы хотите добавить ее в список, можно использовать код, аналогичный приведенному в следующем примере:

# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []

# The while loop
while user_input.lower() != 'done':
    # Check if there's a value in user_input
    if user_input:
        # Store the value in the list
        inputs.append(user_input)
    # Prompt for a new value
    user_input = input('Enter a new value, or done when done')

Обратите внимание на оператор if внутри цикла while. Этот оператор проверяет строковое значение внутри user_input. while Если цикл выполняется в первый раз, нет значения, поэтому нет ничего, чтобы храниться в inputs. После первого user_input запуска всегда сохраняет значение, введенное пользователем. Так как while тестируется, чтобы убедиться, что значение не равно done (слово, которое пользователь вводит для выхода из приложения), вы знаете, что текущее значение — это значение, которое можно добавить в список.

Примечание.

Возможно, вы знакомы с другими языками программирования, поддерживающими цикл do, который позволяет выполнить проверку в нижней части цикла. В Python нет цикла do.