我正在编写一个程序,以使用Python打印整数的倒数。我希望345
的输出为543
(即345
颠倒了),但是我却得到了inf
。
这是我的代码:
def intreverse(n):
r = 0
while n != 0:
d = n % 10
r = r * 10 + d
n = n / 10
print(r)
intreverse(345)
我在做什么错,如何解决?
答案 0 :(得分:2)
如上所述,您需要将整数除以整数。
替换
n = n/10
作者
n = n // 10
//
分为int
而不是float
。
答案 1 :(得分:1)
如果可以的话,根本不用任何数学就可以解决您的问题
def intreverse(n):
return int(str(n)[::-1])
答案 2 :(得分:0)
问题在于用10
除法会将n
隐式转换为float
。假设n
是整数。
更改
n=n/10
to(防止隐式转换为float
)
n=int(n/10) or n=n//10
n.b。最初的问题是您确实进行了float
转换,但是由于浮点数不正确,退出条件n!=0
并没有达到您的预期。
答案 3 :(得分:0)
另一种可能的方法是将数字放入数组。
def reverse(number):
listing = []
intversion = ""
for letter in str(number):
listing.insert(0, letter)
for x in range(0, len(listing)):
intversion += str(listing[x])
print(int(intversion))
reverse(345)
输出如下:
543
>>>
注意-除letter
之外,我使用的变量可以更改为任意值。