|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问零基础入门学习Python中的第023讲和024讲的课后习题中。为什么课后习题0由十进制求2进制数,代码如下:
def Dec2Bin(dec):
result = ''
if dec:
result = Dec2Bin(dec//2)
return result + str(dec%2)
else:
return result
print(Dec2Bin(62))
为啥这里的变量result放在定义函数里就没问题。而题1中将参数n分解出每个位的数字并按顺序放到列表中的代码:
result = []
def get_digits(n):
if n > 0:
result.insert(0, n%10)
get_digits(n//10)
get_digits(12345)
print(result)
它的变量result要放在定义函数外,而放在定义函数里就出不来结果呢? 能解释一下吗?麻烦了
因为 get_digits() 用到了递归,放到函数内部导致每次递归 result 都会被清空。
|
|