函数返回1而不是Number的反转

时间:2017-01-15 12:09:32

标签: python python-3.x recursion

嘿,我在python3中有这个功能,任何人都可以解释为什么它将1作为输出而不是数字作为反向

def reverse(a , rev):
    if a > 0:
        d =  a % 10
        rev = (rev * 10) + d
        reverse(a/10 , rev)

    return rev

b = input("Enter the Number")
x = reverse(b , 0)
print(x)

2 个答案:

答案 0 :(得分:3)

你需要:

  • 使用整数除法(//
  • 捕获递归调用返回的值,return
  • 将字符串输入转换为数字(int()

更正后的脚本:

def reverse(a, rev):
    if a > 0:
        d =  a % 10
        rev = (rev * 10) + d
        return reverse(a//10, rev)

    return rev

b = input("Enter the Number")
x = reverse(int(b), 0)
print(x)

答案 1 :(得分:1)

我不确定你为什么这样做。似乎以下更容易

def rev(a):
   return int(str(a)[::-1])

无论如何,我相信你应该使用" //"而不是" /"在python 3中没有其余部分进行划分?