python-如何反转负整数或非整数

时间:2015-04-28 17:24:41

标签: python

我正在学习python,遇到了一些麻烦。

我想编写脚本来反转负整数“-1234到4321-”和非整数“1.234到432.1”。请帮我。 附:不能使用“str()”函数

我只能编写脚本来反转正整数1234到4321

def reverse_int(n):

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

5 个答案:

答案 0 :(得分:2)

如何使用您的代码,但只在-为负时连接n

<强> 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)

这会产生:

$ python rev_int.py
4321
4321-

答案 1 :(得分:0)

使用它作为指南,并使其适用于浮点值:

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)

答案 2 :(得分:0)

使用切片轻松完成

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

答案 3 :(得分:0)

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))

#输出 工商银行 321 -321

答案 4 :(得分:-3)

为什么不执行以下操作?:

def CrearMatriz():
    archi = open("data.txt", "r")
    num = archi.readlines() 
    for lines in num:
        nums= [float(x) for x in lines.strip().split(",")]
    return nums
Numero = CrearMatriz()

这些将打印54321.1和54321 - 。

大声笑,我不明白向下投票..我想这太简单了,并不需要过度复杂的过程来得到相同的结果?无论使用的数量是什么,这都无法解决问题?