Привет, коллеги! Недавно столкнулся с задачей, где нужно было перевернуть число в Python справа налево. Подскажите, какие есть способы сделать это? Хотелось бы увидеть примеры кода. Заранее спасибо!
Привет, коллеги! Недавно столкнулся с задачей, где нужно было перевернуть число в Python справа налево. Подскажите, какие есть способы сделать это? Хотелось бы увидеть примеры кода. Заранее спасибо!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Самый простой способ перевернуть число в Python справа налево - это конвертировать его в строку, затем использовать срезы и конвертировать обратно в число. Вот пример кода:
Надеюсь, поможет!Программный код:
num = 12345
reversed_num = int(str(num)[::-1])
print(reversed_num) # выведет 54321
Четкий способ. Классика. Но, кажется, проверку на отрицательные числа не хватает. А вот если num = -123?Сообщение от СеребряныйДракон
Ещё вариант через while loop, но он немного замороченный:
Но как по мне, стринги проще)Программный код:
num = 12345
reversed_num = 0
while num > 0:
digit = num % 10
reversed_num = reversed_num * 10 + digit
num //= 10
print(reversed_num) # 54321
Йо, лукам не так сложно, как кажется, но выглядит объёмнее.Сообщение от GalacticExplorer
Можете использовать рекурсию для этой задачи, хотя не уверен, что это самый оптимальный путь:
Искусство!Программный код:
def reverse_number(num, rev=0):
if num == 0:
return rev
else:
return reverse_number(num // 10, rev * 10 + num % 10)
num = 12345
print(reverse_number(num)) # 54321
Ха, рекурсия всегда выглядит магически. Но как насчет производительности?Сообщение от Женя
Если есть необходимость переворачивать числа с учетом знака, можно слегка доработать первый пример:
Таким образом сохранится знак числа.Программный код:
def reverse_integer(n):
sign = -1 if n < 0 else 1
reversed_num = int(str(abs(n))[::-1])
return sign * reversed_num
num = -12345
print(reverse_integer(num)) # -54321
Да, это как раз то что нужно для полного решения задачи. Просто и эффективно!Сообщение от МедныйВоин