Python Program To Reverse a Number

2 min read

Problem Definition

Create a Python program to reverse a number in Python.

Solution

This article will show multiple solutions for reversing a number in Python.

Reversing a number mathematically

The algorithm below is used to reverse a number mathematically with time complexity of O(log n) where n is input number.

Algorithm

Input : num

(1) Initialize rev_num = 0

(2) Loop while num > 0

  • (a) Multiply rev_num by 10 and add remainder of num divide by 10 to rev_num
  • (b) Divide num by 10

(3) Return rev_num

 Program

num = 12345

rev_num = 0

while num != 0:
    rev_num = rev_num * 10
    rev_num = rev_num + (num%10)
    num = num // 10
print(rev_num)

Output

54321

Using reversed() method

Python's built in reversed() method returns an iterator that accesses the given sequence in the reverse order.

Program

# input
num = 1234

rev_iterator = reversed(str(num))
rev_num = "".join(rev_iterator)

print(rev_num)

Output

4321

Note that the reversed() method doesn't accept integer as a parameter therefore data type is converted to a string.

Sincereversed() returns an iterator we need to join it before printing it out.

Using slicing

Python string supports slicing to create substring.

str_object[start_pos:end_pos:step]

The slicing starts with the start_pos index (included) and ends at the end_pos index (excluded). The step parameter is used to specify the steps to take from the start to end index.

Program

num = 123

rev_num = str(num)[::-1]

print(rev_num)

Output

321

Since slicing work on a string we need to convert the number to a string, then create a slice that starts with the length of the string, and ends at index 0 with a step of -1.

Suggested read:


PROGRAMS

Latest Articles

Latest from djangocentral

Django 4.1 adds async-compatible interface to QuerySet

The much-awaited pull request for an async-compatible interface to Queryset just got merged into the main branch of Django.Pull Request - https://github.com/django/django/pull/14843 The Django core team has been progressively adding async suppor…
Read more →

3 min read

Making Django Admin Jazzy With django-jazzmin

Django admin is undoubtedly one of the most useful apps of Django. Over the years there has been very little change in the admin app as far as the UX is concerned and it's not a bad thing at all. Django admin was designed to provide a simple and minimali…
Read more →

4 min read