小编Ham*_*ido的帖子

使用if语句进行Python递归函数调用

我有一个关于使用if语句和递归的函数调用的问题.我有点困惑,因为即使我的函数返回"False",python似乎也会跳转到if语句块

这是一个例子:

1    def function_1(#param):
2       if function_2(#param):
3           #do something
4           if x<y:
5               function_1(#different parameters)
6           if x>y:
7               function_1(#different parameters)
Run Code Online (Sandbox Code Playgroud)

我的function_2返回"False",但python继续第5行的代码.谁能解释这种行为?提前感谢您的任何答案.

编辑:对不起,忘了括号

具体例子:

1    def findExit(field, x, y, step):
2        if(isFieldFree(field, x, y)):
3            field[y][x] = filledMarker
4            findExit(field, x + 1, y, step+1)
5            findExit(field, x - 1, y, step+1)
6            findExit(field, x, y + 1, step+1)
7            findExit(field, x, y - 1, step+1)
8        elif(isFieldEscape(field, x, y)):
9            way.append(copy.deepcopy(field))
10            wayStep.append(step+1)

    def isFieldFree(field, x, y): …
Run Code Online (Sandbox Code Playgroud)

python recursion if-statement function

-2
推荐指数
1
解决办法
1494
查看次数

标签 统计

function ×1

if-statement ×1

python ×1

recursion ×1