Цикл while — это тип оператора управления потоком, который позволяет многократно выполнять блок кода до тех пор, пока не будет выполнено определенное условие. Базовый синтаксис цикла while в Python включает условие и блок кода, который должен выполняться до тех пор, пока условие не будет выполнено:

while condition:
    # code to be executed while the condition is true

Блок кода с отступом под циклом while будет выполняться повторно, пока condition истинно. Как только условие станет ложным, цикл завершится, и программа продолжит выполнение следующей строки кода после цикла.

Вот пример простого цикла while, который ведет обратный отсчет от 10 и печатает каждое число:

count = 10
while count > 0:
    print(count)
    count -= 1

Эта программа выведет все числа от 10 до 1:

10
9
8
7
6
5
4
3
2
1

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

count = 10
while True:
    print(count)
    count -= 1
    if count == 0:
        break

В этом случае цикл будет выполняться до тех пор, пока переменная count не станет равной 0, после чего будет выполнен оператор break и цикл завершится.

Работа с числовыми цифрами

Циклы while особенно полезны при обработке цифр числа, поскольку они позволяют непрерывно выполнять операцию над каждой цифрой, пока вы не обработаете все цифры. Отличным примером является вычисление суммы цифр числа:

n = int(input('Enter a number:'))
total = 0

while number > 0:
    digit = n % 10    # Get the last digit of the number
    total += digit    # Add the digit to the sum
    n //= 10          # Remove the last digit from the number

print('The sum of the digits is', total)

Этот цикл while работает путем непрерывного деления number на 10 и получения остатка в качестве следующей цифры для обработки. Цикл продолжается до тех пор, пока number не станет равным 0, после чего все цифры будут обработаны.

Обратите внимание, что здесь цифры обрабатываются от последней цифры числа до первой. Итак, технически мы обрабатываем число от младшей значащей цифры к старшей. Можете ли вы получить новое число из n, которое имело бы обратное значение n?

Что дальше?