xia兄弟 发表于 2018-2-13 21:58:59

关于递归的小问题

def Dec2Bin(dec):
    result = ''
   
    if dec:
      result = Dec2Bin(dec//2)
      return result + str(dec%2)
    else:
      return result

print(Dec2Bin(62))


哪位大神指导指导呀,帮忙解读一下这个递归

°蓝鲤歌蓝 发表于 2018-2-13 21:59:00

就你这一段代码说明一下:
函数Dec2Bin(62)运行后返回 Dec2Bin(31) + str(0)
而 Dec2Bin(31) 的返回值是 Dec2Bin(15) + str(1),所以 Dec2Bin(62) 返回的就变成了 Dec2Bin(15) + str(1) + str(0)
一直递归下去直到 dec = 0,此时 Dec2Bin(0) 返回的是 '',所以整个函数的返回值就是'' +...+ str(1) + str(0) 。

御笔剑客 发表于 2018-2-14 00:13:31

功能是十进制转二进制,过程大致就是楼上那样
页: [1]
查看完整版本: 关于递归的小问题