|
发表于 2020-8-3 00:27:20
|
显示全部楼层
本楼为最佳答案
本帖最后由 Twilight6 于 2020-8-3 07:19 编辑
直接拿实例举例子试试看能不能懂,当我们转化 10 这个数字时候:
- def Dec2Bin(dec):
- result = '' # 设置个字符串,每次递归都会重新赋值为一个空字符串,所以这个函数每次 result 最多也只会返回一个字符
- if dec: # 只要 dec 参数不为 0 ,那么就始终满足 if 条件,进行递归
- result = Dec2Bin(dec // 2)
- # 这里用了递归 Dec2Bin(10)->Dec2Bin(5)->Dec2Bin(2)->Dec2Bin(1)->Dec2Bin(0)
- return result + str(dec % 2)
- # 然后开始返回值 Dec2Bin(0)->Dec2Bin(1)->Dec2Bin(2)->Dec2Bin(5)->Dec2Bin(10)
- # 返回结果是 '' + '1' + '0' + '1' + '0'
- else: # 当 dec 为 0 时,就说明值已经全部求完了,此时直接返回一个 result 作为递归出口
- return result
- print(Dec2Bin(10))
复制代码 |
|