Crossin的编程教室
标题:
用递归实现十进制转换二进制程序疑问
[打印本页]
作者:
风风魔王
时间:
2020-3-16 17:10
标题:
用递归实现十进制转换二进制程序疑问
def binnew(num):
binary = []
if num == 0:
pass
else:
remainer = num % 2
num //= 2
binary.append(remainer)
binnew(num)
for i in binary[::-1] :
print(i ,end = '')
写完程序之后发现执行结果是对的,可以打印出转换后的二进制数,但是我仔细分析一下程序,binary = [] 这一句,每次执行的时候都会清零啊,按理说应该打印不出来正确结果的,我单独调试也发现每一步确实清零了,但是执行到for 循环那里的时候,每次循环居然能把之前的值弹出来,令我很费解,请问下这是什么原因呢?谢谢!
作者:
crossin先生
时间:
2020-3-16 22:39
这是递归调用,每次的结果又被作为参数num传递到下一个binnew里面了
作者:
风风魔王
时间:
2020-3-16 23:16
crossin先生 发表于 2020-3-16 22:39
这是递归调用,每次的结果又被作为参数num传递到下一个binnew里面了
谢谢先生我懂了,最近刚学到递归感觉有点不好理解
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/)
Powered by Discuz! X2.5