О циклах 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
.