Разворот числа

В этом примере посмотрим два способа развернуть число в Python: через арифметику с циклом while и через срезы строк.

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Через цикл while

num = 1234
reversed_num = 0

while num != 0:
    digit = num % 10
    reversed_num = reversed_num * 10 + digit
    num //= 10

print("Reversed Number: " + str(reversed_num))

Вывод

4321

Как это работает

В этой программе цикл while разворачивает число пошагово:

  1. Остаток от деления num на 10 сохраняется в переменной digit — это последняя цифра числа, то есть 4.

    Затем digit прибавляется к reversed_num, предварительно умноженному на 10. Умножение на 10 сдвигает уже накопленные цифры на один разряд влево: единицы становятся десятками, десятки — сотнями и так далее. На этом шаге получаем 0 * 10 + 4 = 4.

    Деление num //= 10 отбрасывает последнюю цифру: остаётся 123.

  2. На второй итерации digit = 3, reversed_num = 4 * 10 + 3 = 43, num = 12.

  3. На третьей итерации digit = 2, reversed_num = 43 * 10 + 2 = 432, num = 1.

  4. На четвёртой итерации digit = 1, reversed_num = 432 * 10 + 1 = 4321, num = 0.

  5. Условие num != 0 перестаёт выполняться, цикл завершается. В reversed_num уже лежит развёрнутое число 4321.

Пример 2. Через срез строки

num = 123456
print(str(num)[::-1])

Вывод

654321

Этот вариант использует срез строки. Конструкция ::-1 означает start:stop:step: при step = -1 обход идёт от конца к началу, и строка получается развёрнутой. Число сначала превращается в строку через str(), а затем разворачивается срезом.