w3resource

Python Challenges: Reverse the digits of an integer

Python Challenges - 1: Exercise-18 with Solution

Write a Python program to reverse the digits of an integer.

Explanation:

Python: Reverse the digits of an integer

Sample Example:

Input : 234
Input : -234
Output: 432
Output : -432

Sample Solution-1:

Python Code:

def reverse_integer(x):
        sign = -1 if x < 0 else 1
        x *= sign

        # Remove leading zero in the reversed integer
        while x:
            if x % 10 == 0:
                x /= 10
            else:
                break

        # string manipulation
        x = str(x)
        lst = list(x)  # list('234') returns ['2', '3', '4']
        lst.reverse()
        x = "".join(lst)
        x = int(x)
        return sign*x
    
print(reverse_integer(234))
print(reverse_integer(-234))

Sample Output:

432   
-432

Flowchart:

Python Flowchart: Reverse the digits of an integer

Sample Solution-2:

Reverses a number:

  • Use str() to convert the number to a string, slice notation to reverse it and str.replace() to remove the sign.
  • Use float() to convert the result to a number and math.copysign() to copy the original sign.

Python Code:

from math import copysign
def reverse_number(n):
  return copysign(float(str(n)[::-1].replace('-', '')), n) 
print(reverse_number(873))
print(reverse_number(-900))
print(reverse_number(234.6))
print(reverse_number(-15.78))

Sample Output:

378.0
-9.0
6.432
-87.51

Flowchart:

Python Flowchart: Reverse the digits of an integer

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to find whether it contains an additive sequence or not.
Next: Write a Python program to reverse the bits of an integer (32 bits unsigned).

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.