Python递归函数,在if语句中返回
我目前正试图用python开发一个递归函数,但在尝试调用return语句时遇到了问题 作为一个虚拟示例,我编写了一个简单的函数(如下所示)。当我使用默认参数运行这个函数时,我可以看到它确实会先执行“else”语句好几次,然后在达到“if”单元格条件时停止(所以似乎执行了“return”,对不对?) 但是,如果我检查return参数,似乎返回了None参数 问:从这个递归函数中导出“counter”值的正确方法是什么 我试过的想法和事情:Python递归函数,在if语句中返回,python,function,api,recursion,Python,Function,Api,Recursion,我目前正试图用python开发一个递归函数,但在尝试调用return语句时遇到了问题 作为一个虚拟示例,我编写了一个简单的函数(如下所示)。当我使用默认参数运行这个函数时,我可以看到它确实会先执行“else”语句好几次,然后在达到“if”单元格条件时停止(所以似乎执行了“return”,对不对?) 但是,如果我检查return参数,似乎返回了None参数 问:从这个递归函数中导出“counter”值的正确方法是什么 我试过的想法和事情: 我的第一个想法是“印刷”声明应该受到谴责。然而,移除它们
- 我的第一个想法是“印刷”声明应该受到谴责。然而,移除它们并不能解决问题
- 反转if和else语句也不起作用,并调用了相同的行为
- 函数在10次运行后停止这一事实意味着达到了“return”语句。另一个想法可能是,这是一个“范围界定问题”。然而,将“计数器”移到函数外并不起作用,因为它会产生引用错误
用例:使用此函数可以自动展开分页的API响应。尝试以下操作:
def recursive_count(counter=1):
if counter >=10:
print("Final count reached.")
return counter
else:
print("increasing counter.")
counter += 1
return recursive_count(counter=counter)
我将在评论中回答您的问题。试试以下方法:
def recursive_count(counter=1):
if counter >=10:
print("Final count reached.")
return counter
else:
print("increasing counter.")
counter += 1
return recursive_count(counter=counter)
我将在评论中回答您的问题。只需在递归调用前添加
return
return recursive_count(counter=counter)
只需在递归调用前面添加
return
return recursive_count(counter=counter)
else块中缺少一个返回值:
return recursive\u count(counter=counter)
问题的重复:else块中缺少一个返回值:return recursive\u count(counter=counter)
问题的重复:顺便说一句,如果if/else在if中有返回值,else线路变得多余。顺便说一句,它只是一个“btw”。这只是一个代码风格的东西,它降低了代码的复杂性。顺便说一句,如果if/else中有一个返回,那么else行将变得多余。它只是一个“顺便说一句”。这只是一种代码风格,它降低了代码的复杂性。