现在,作为序言,我同意上面的评论讨论,不建议在python中对没有参数的函数进行递归搜索,因为根据搜索的工作方式以及它如何访问global变量,您可能会遇到问题,而且您实际上是在进行“受治理”的迭代搜索通过一个函数,也就是说,它只决定增加什么和什么时候。在
要以您描述的方式正确地进行迭代搜索,可以将findStart转换为包装函数:
(建议):def findStart(mazeList):
return findStartRec(mazeList,0,0)
或者:
mazeList=。。。#定义mazeList
定义查找开始(mazeList):
返回findStartRec(mazeList,0,0)
然后解决:
^{pr2}$
为我工作:>>> findStartRec(mazeList)
(1, 1)
然后先定义无参数函数:maze = """####################################
#S# ## ######## # # # # #
# # # # # # #
# # ##### ## ###### # ####### # #
### # ## ## # # # #### #
# # # ####### # ### #E#
####################################"""
mazeList = [[x for x in row] for row in maze.split('\n')]
def findStart():
return findStartRecu(mazeList,0,0)
然后打电话:>>> findStart()
(1,1)
最后要说明的是,这并不是递归搜索的最佳应用程序,因为这种搜索存在于非常明确和已知的边界内,即它是矩形的。递归搜索更适合于树、链表等非线性形状的数据结构,因为不可能使用for循环这样的有限映射来真正搜索它们。在