Python-Can';";完";递归函数

Python-Can';";完";递归函数,python,recursion,Python,Recursion,我做了一个迷宫寻路递归函数作为家庭作业,但我遇到了一个问题。我知道我已经做了所有正确的事情(通过调试),正在找到路径等等。但是当所有递归函数开始返回True时,原来的/第一个不是!我找不到使其返回true的方法(递归调用采用“if,true”格式) 我希望你们能帮助我,抱歉英语不好,因为它不是我的母语 *代码如下: 如果没有所有的代码,我可能是错的,但我认为您需要一个全局/类var来存储返回值。逻辑:第一次调用不返回任何内容(或不返回任何内容),因为正在调用其他函数。 需要说明的是: a =

我做了一个迷宫寻路递归函数作为家庭作业,但我遇到了一个问题。我知道我已经做了所有正确的事情(通过调试),正在找到路径等等。但是当所有递归函数开始返回True时,原来的/第一个不是!我找不到使其返回true的方法(递归调用采用“if,true”格式)

我希望你们能帮助我,抱歉英语不好,因为它不是我的母语

*代码如下:


如果没有所有的代码,我可能是错的,但我认为您需要一个全局/类var来存储返回值。逻辑:第一次调用不返回任何内容(或不返回任何内容),因为正在调用其他函数。
需要说明的是:

a = [1,2,[4,6],3,4]
ret = None
def f(x):
    global ret
    if isinstance(x, list):
        f(x[0])
    else:
        ret = x
        return x

var = f(a)
print(var, ret)
如果您进行测试,您将看到var=None,但ret是1(我建议您将代码封装到类中并使用self.ret之类的东西,而不是global)


注:正如Joel Cornett所说,使用英文/抽象变量名可以使所有代码更具可读性

如果没有所有代码,我可能会错,但我认为您需要一个全局/类var来存储返回值。逻辑:第一次调用不返回任何内容(或不返回任何内容),因为正在调用其他函数。
需要说明的是:

a = [1,2,[4,6],3,4]
ret = None
def f(x):
    global ret
    if isinstance(x, list):
        f(x[0])
    else:
        ret = x
        return x

var = f(a)
print(var, ret)
如果您进行测试,您将看到var=None,但ret是1(我建议您将代码封装到类中并使用self.ret之类的东西,而不是global)


注:正如Joel Cornett所说,使用英文/抽象变量名可以使所有代码更具可读性

你需要显示你的实际代码。你能把变量名英语化吗?那就容易多了。请改正你的身份。由于语言障碍,很难理解它。运行函数时,您能澄清发生了什么吗?它会永远运行吗?打印的是什么输出?您需要显示实际的代码。您能将变量名英语化吗?那就容易多了。请改正你的身份。由于语言障碍,很难理解它。运行函数时,您能澄清发生了什么吗?它会永远运行吗?打印的是什么输出?这就成功了!顺便说一句,很抱歉没有翻译VAR等。我有点担心。无论如何,谢谢你的社区!这就成功了!顺便说一句,很抱歉没有翻译VAR等。我有点担心。无论如何,谢谢你的社区!