我一直试图将值从递归助手函数传递给父函数,但它正在传递None
。我正在学习Python和递归,并试图理解值是如何在函数之间传递的。你知道吗
def superDigitSum(n,k):
num2str = [int(i) for i in list(str(n))*k] #creates the list[1,4,8,1,4,8,1,4,8]
result=0
return superDigitSumHelper(num2str, result)
def superDigitSumHelper(num2str, helper_result):
if not num2str :
return helper_result
else:
helper_result+=num2str[-1]
superDigitSumHelper(num2str[:-1],helper_result)
print(superDigitSum(148,3))
代码创建列表[1,4,8,1,4,8,1,4,8]并对值求和。我期望结果是39
(3*(1+4+8))。你知道吗
你的功能有点错误。你知道吗
您需要向superDigitSumHelper函数添加以下返回:
在你的生活中。你知道吗
本质上,它返回none是因为函数结束后,它不返回任何内容,所以默认值是none。你知道吗
这个子句返回
None
到堆栈的下一个调用。您需要返回最后一个值:相反
试试看
如果不返回递归调用的结果,就等于不返回任何结果
相关问题 更多 >
编程相关推荐