Цикл while
Цикл while ("пока") позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.
Цикл while используется, когда невозможно определить точное количество повторений цикла.
i = 0 # объявление переменной i для условия цикла
while i < 5: # ключевое слово 'while' и условие выполнение цикла
# тело цикла
print(i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
Цикл while может быть бесконечным.
i = 0
while True: # условие всегда истинно
print(i)
i += 1
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
...
>> 999
...
# Это может продолжаться долго...
Оператор break
Выполнение цикла можно прерывать с помощью оператора break.
i = 0
while 1: # условие всегда истинно
if i == 3: # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print(i)
i += 1
# Вывод:
>> 0
>> 1
>> 2
Оператор continue
Оператор continue начинает повторение цикла заново.
i = 0
while i < 5:
i += 1 #
if i % 2 == 1: # если значение i нечетно, то вызываем оператор continue
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print(i)
# Вывод:
>> 0
>> 2
>> 4
Как и для цикла for, для цикла while мы можем записать конструкцию else.
x = 1
while x < 5:
print(x)
x += 1
else:
print('Цикл завершен')
# Вывод:
>> 1
>> 2
>> 3
>> 4
>> Цикл завершен
Примеры
1. Числа от A до B
# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.
A = int(input('Введите число: '))
B = int(input('Введите число: '))
while A >= B:
print(A)
A -= 1
# Ввод:
>> 12
>> 7
# Вывод:
>> 12
>> 11
>> 10
>> 9
>> 8
>> 7
# Ввод:
>> 5
>> 2
# Вывод:
>> 5
>> 4
>> 3
>> 2
2. Много чисел
# Пользователь вводит числа до тех пор, пока не введет 0.
# Выведите количество введенных чисел (0 считать не нужно).
n = int(input('Введите число: '))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
# если n равно 0, то выполнение цикла прервется
n = int(input('Введите число: ')) # вводим очередное число
counter += 1 # увеличиваем счетчик
print(f'Количество чисел {counter}')
# Ввод:
>> 1
>> 10
>> 100
>> 1000
>> 0
# Вывод:
>> Количество чисел 4
3. Наименьший делитель
# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
N = int(input('Введите число: '))
div = 2
while N % div != 0:
div += 1
print(f'Наименьший делитель равен {div}')
# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2
# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3
# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17