Цикл while в Python

Назад в начало

Цикл 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.

i = 0
while 1: # условие всегда истинно
    if i == 3: # если i равно 3, то вызываем оператор break
        break # оператор break прерывает выполнение цикла
    print(i)
    i += 1

# Вывод:
>> 0
>> 1
>> 2

Оператор 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

Решение задач

1. Четные от A до B

Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.

# Ввод:
>> 10
>> 1
# Вывод:
>> 10
>> 8
>> 6
>> 4
>> 2

2. От A до B на три

Пользователь вводит числа A и B (A < B, A меньше B). Выведите числа от A до B включительно, которые делятся на три.

# Ввод:
>> 1
>> 15
# Вывод:
>> 3
>> 6
>> 9
>> 12
>> 15

3. Сумма чисел

Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Сумма равна: 39

4. Максимум

Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Максимум равен: 15

5. Минимум

Пользователь вводит числа до тех пор, пока не введет 0. Выведите минимальное введенное число (0 считать не нужно).

# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0 # 0 не входит в последовательность
# Вывод:
>> Минимум равен: 1

6. Факториал

Пользователь вводит число N. Выведите факториал число N. Факториал числа N - это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.

# Ввод:
>> 5
# Вывод:
>> 120

# Ввод:
>> 3
# Вывод:
>> 6

# Ввод:
>> 4
# Вывод:
>> 24

7. Фибоначчи (финальный босс)

Пользователь вводит число N. Выведите N-ное по счету число Фибоначчи. Последовательность чисел Фибоначчи рассчитывается по такой формуле: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1). Идея такая: каждое следующее число равно сумму двух предыдущих.

Первые 10 чисел последовательности: 1 1 2 3 5 8 13 21 34 55 ...

# Ввод:
>> 5
# Вывод:
>> 5

# Ввод:
>> 10
# Вывод:
>> 55

# Ввод:
>> 8
# Вывод:
>> 21