|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
关于10禁止转换为2禁止的题目
小弟的代码是这样的,有问题:
def name():
string=''
def digui(x):
nonlocal string
if x<2:
return 0
else:
a=x%2
string=string+str(a)
x=x//2
digui(x)
string=string[::-1]
return string
return digui
小甲鱼老师的代码是这样的
def Dec2Bin(dec):
result = ''
if dec:
result = Dec2Bin(dec//2)
return result + str(dec%2)
else:
return result
print(Dec2Bin(777))
我有个问题 dec2bin这个 函数调用自己本身?那不是要经过 result=‘’ 那之前的 result 在递归过程 中 不应 该会被清理掉么
每次递归 不是应该相当于重新定义一次 result这个变量么?
- def name():
- string=''
- def digui(x):
- nonlocal string
- if x == 0: #结束的边界错了
- return 0
- else:
- string = string+str(x%2)
- digui(x//2)
- return string[::-1]
- return digui
- a = name()
- print(a(777))
复制代码
|
|