例如:

num = 123401000

def reverse_int(num):
    sign = 1

    if num > 0:
        sign = 1
    else:
        sign = -1

    print(sign)
    tmp = abs(num)
    print(tmp)

    return int(str(tmp)[::-1]) * sign

print(reverse_int(num))


此代码的目的是打印出num的反面,但此代码打印出104321。谁能告诉我为什么没有捕获到最后的零?

最佳答案

零被捕获。但是最后将其转换回int时,在数值上000104321104321之间没有区别,并且int仅具有一个本机表示形式(0011 (以不同的方式存储,以保留0)。如果需要保留这些零,则无法转换回int,必须将其保留为str

您可以采取的一种方法是让sign存储前缀字符串而不是数字,从而编写代码:

def reverse_int(num):
    if num >= 0:
        sign = ''  # No sign to add
    else:
        sign = '-'  # Keep negative sign

    print(sign)
    tmp = abs(num)
    print(tmp)

    return sign + str(tmp)[::-1]

关于python - 反转从int转换的字符串时,不会打印结尾的0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54121050/

10-13 07:31