Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python2递归函数返回以前执行的值_Python_Python 2.7_Recursion - Fatal编程技术网

Python2递归函数返回以前执行的值

Python2递归函数返回以前执行的值,python,python-2.7,recursion,Python,Python 2.7,Recursion,我开始写一些简单的代码,最终应该成为一个纵横字谜解决者。在这个过程中,我使用了一个递归函数。输出结果真让我困惑。代码如下: def checkMatcher(totalRows, prevCoor, count): print(count) if count < 3: for coor in totalRows[count]: if (prevCoor[0] == coor[0] or prevCoor[0] == coor[0] +

我开始写一些简单的代码,最终应该成为一个纵横字谜解决者。在这个过程中,我使用了一个递归函数。输出结果真让我困惑。代码如下:

def checkMatcher(totalRows, prevCoor, count):
    print(count)
    if count < 3:
        for coor in totalRows[count]:
            if (prevCoor[0] == coor[0] or prevCoor[0] == coor[0] + 1 or prevCoor[0] == coor[0] - 1) and (prevCoor[1] == coor[1] or prevCoor[1] == coor[1] + 1 or prevCoor[1] == coor[1] - 1):
                count += 1
                checkMatcher(totalRows, coor, count)
    return count

letterCoordinates = [
    [(1,1),(9,7),(13,44),(9,99)],
    [(1,2),(7,3),(12,12),(10,10)],
    [(1,3),(8,88),(7,4),(82,11)]
]

#for firstletterCoor in letterCoordinates[0]:
count = checkMatcher(letterCoordinates, (1,1), 1)
print("Returned Count is " + str(count))

我的问题是,为什么返回的计数不是3?

问题是递归调用:

checkMatcher(totalRows, coor, count)

忽略返回值。

问题在于递归调用:

checkMatcher(totalRows, coor, count)

忽略返回值。

count
等于
1
时,它将递增1,然后传递给递归调用(该调用打印
2
,并使用
3
进行递归调用,然后打印
3
)。当控件返回到第一个调用时,
count
仍然是
2


您需要考虑递归调用的返回值。

count
等于
1
时,它将递增1,然后传递给递归调用(该调用打印
2
,并使用
3
进行递归调用,然后打印
3
)。当控件返回到第一个调用时,
count
仍然是
2


您需要考虑递归调用的返回值。

啊,我明白了,看起来我只是需要递归调用的返回值。谢谢啊,我明白了,看起来我只是需要一个递归调用的返回。谢谢