例如:
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
时,在数值上000104321
和104321
之间没有区别,并且int
仅具有一个本机表示形式(001
和1
(以不同的方式存储,以保留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/