代码:
每次重复调用该函数时,都会重置计数器和存储器def bin_to_dec(b):
'''Takes a string b that represents a binary number and uses recursion
to convert the number from binary to decimal.'''
counter = -1
storage = 0
if b == 0:
return '0'
elif b == 1:
return '1'
else:
if b[-1] == 1:
counter += 1
storage += 2**counter
return storage + bin_to_dec(b[:-1])
else:
counter += 1
return bin_to_dec(b[:-1])
所以我正在编写一个将二进制数转换为十进制数的函数,但每次递归调用该函数时,变量计数器和存储都会被重置。我必须使用递归,并且不能使用我尚未学到的任何东西,例如地图或钥匙。
答案 0 :(得分:0)
您希望通过函数调用保留的任何内容都不应该是函数的本地内容。有许多方法可以在调用之间保留值。您的建议方法是将其作为参数传递给函数。