How to reverse a negative number in python

I am learning python and I meet some troubles.

I want to write the script to reverse a negative integer " -1234 to 4321- " and non-integer " 1.234 to 432.1". please help me. P.S. cannot use "str()" function

I just only can write the script to reverse positive integer 1234 to 4321

def reverse_int(n):

    x = 0
    while n > 0:
        x *= 10
        x += n % 10
        n /= 10
    return x
print reverse_int(1234)

How to reverse a negative number in python

smac89

35.1k14 gold badges115 silver badges162 bronze badges

asked Apr 28, 2015 at 17:24

6

def reve(x):
    x=str(x)
    if x[0]=='-':
        a=x[::-1]
        return f"{x[0]}{a[:-1]}"
    else:
        return x[::-1]

print(reve("abc"))
print(reve(123))
print(reve(-123))

#output cba 321 -321

answered Jul 5, 2021 at 14:21

1

how about using your code, but just concatenate a - when n is negative?

rev_int.py:

def reverse_int(m):
    x = 0
    n = m
    if m < 0 :
      n *= -1
    while n > 0 :
        x *= 10
        x += n % 10
        n /= 10
    if m < 0:
      #concatenate a - sign at the end
      return `x` + "-"
    return x

print reverse_int(1234)
print reverse_int(-1234)

This produces:

$ python rev_int.py
4321
4321-

answered Apr 28, 2015 at 17:55

How to reverse a negative number in python

CuriousCurious

2,6281 gold badge29 silver badges40 bronze badges

6

Using SLICING EASILY DONE IT

def uuu(num):
if num >= 0: 
    return int(str(num)[::-1])
else:
    return int('-{val}'.format(val = str(num)[1:][::-1]))

answered Mar 23, 2021 at 6:35

How to reverse a negative number in python

Below code runs fine on Python-3 and handles positive and negative integer case. Below code takes STDIN and prints the output on STDOUT.

Note: below code handles only the integer case and doesn't handles the non-integer case.

def reverseNumber(number):
        x = 0
        #Taking absolute of number for reversion logic
        n = abs(number)
        rev = 0
        #Below logic is to reverse the integer
        while(n > 0):
            a = n % 10
            rev = rev * 10 + a
            n = n // 10
        #Below case handles negative integer case
        if(number < 0):
            return (str(rev) + "-")
        return (rev)
#Takes STDIN input from the user
number=int(input())
#Calls the reverseNumber function and prints the output to STDOUT
print(reverseNumber(number))

answered Aug 24, 2021 at 17:43

How to reverse a negative number in python

Ankit RajAnkit Raj

8491 gold badge7 silver badges17 bronze badges

Using str convert method.

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

answered May 11 at 9:46

How to reverse a negative number in python

1

Use this as a guide and make it work for floating point values as well:

import math

def reverse_int(n):
    if abs(n) < 10:
        v = chr(abs(n) + ord('0'))
        if n < 0: v += '-'
        return v
    else:
        x = abs(n) % 10
        if n < 0: return chr(x + ord('0')) + reverse_int(math.ceil(n / 10))
        else: return chr(x + ord('0')) + reverse_int(math.floor(n / 10))

print reverse_int(1234)

answered Apr 28, 2015 at 17:43

How to reverse a negative number in python

smac89smac89

35.1k14 gold badges115 silver badges162 bronze badges

2

Why not just do the following?:

def reverse(num):
    revNum = ''
    for i in `num`:
        revNum = i + revNum
    return revNum

print reverse(1.12345)
print reverse(-12345)

These would print 54321.1 and 54321-.

Lol, I don't understand the down-vote.. I guess this is too simple and doesn't require over complicating the process to get to the same result? Does this not solve the problem at hand no matter the number used?

answered Apr 28, 2015 at 18:30

AaronAaron

11 bronze badge

2

What is the reverse of a negative number?

Step 1: Check if the number is negative or not. If the number is negative, multiply it with -1 to make it positive. We will multiply the reversed number with -1 at the last to giving a similar effect as if the negative number was reversed. Step 2: Initialize a variable reverse to 0.

How do you reverse a value in Python?

Example 1: Reverse a Number using a while loop First, the remainder of the num divided by 10 is stored in the variable digit . Now, the digit contains the last digit of num , i.e. 4. digit is then added to the variable reversed after multiplying it by 10. Multiplication by 10 adds a new place in the reversed number.

How does Python handle negative numbers?

When abs () is used, it converts negative numbers to positive. However, when -abs () is used, then a positive number can be changed to a negative number. Another method is to subtract the given positive number by zero. It will return the negative form of the given number.

Can you reverse integers in Python?

Python makes it easy to reverse a number by using a while loop. We use a while loop with the help of both floor division and the modulus % operator.