Разворот числа
В этом примере посмотрим два способа развернуть число в Python: через арифметику с циклом while и через срезы строк.
Что нужно знать
Перед изучением примера полезно понимать:
Python: цикл for — цикл for
Python: цикл while — цикл 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 разворачивает число пошагово:
Остаток от деления
numна 10 сохраняется в переменнойdigit— это последняя цифра числа, то есть 4.Затем
digitприбавляется кreversed_num, предварительно умноженному на 10. Умножение на 10 сдвигает уже накопленные цифры на один разряд влево: единицы становятся десятками, десятки — сотнями и так далее. На этом шаге получаем0 * 10 + 4 = 4.Деление
num //= 10отбрасывает последнюю цифру: остаётся 123.На второй итерации
digit= 3,reversed_num=4 * 10 + 3 = 43,num= 12.На третьей итерации
digit= 2,reversed_num=43 * 10 + 2 = 432,num= 1.На четвёртой итерации
digit= 1,reversed_num=432 * 10 + 1 = 4321,num= 0.Условие
num != 0перестаёт выполняться, цикл завершается. Вreversed_numуже лежит развёрнутое число 4321.
Пример 2. Через срез строки
num = 123456
print(str(num)[::-1])
Вывод
654321
Этот вариант использует срез строки. Конструкция ::-1 означает start:stop:step: при step = -1 обход идёт от конца к началу, и строка получается развёрнутой. Число сначала превращается в строку через str(), а затем разворачивается срезом.