小编use*_*360的帖子

python中的运行时错误:"超出最大递归深度"

我有一个程序可以搜索代表迷宫的2D列表,如下所示:

####################################
#S#  ##  ######## # #      #     # #
# #   #             # #        #   #
#   # ##### ## ###### # #######  # #
### # ##    ##      # # #     #### #
#   #    #  #######   #   ###    #E#
####################################
Run Code Online (Sandbox Code Playgroud)

我理解递归错误是什么,但我不知道为什么这个代码会导致它,因为它应该只是导致找到"E".有谁知道这可能会产生错误?

def solve(x,y):
    mazeList = loadMaze("sample.maze")    

    if mazeList[y][x] == "E":
        return "YOU'VE SOLVED THE MAZE!"
    elif mazeList[y][x+1] == " ":  #right
        mazeList[y][x+1] = ">"
        solve(x+1,y)
    elif mazeList[y+1][x] == " ":  #down
        mazeList[y+1][x] = "v"
        solve(x,y+1)    
    elif mazeList[y][x-1] …
Run Code Online (Sandbox Code Playgroud)

python recursion

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

为什么这个按位运算符导致错误?

int u = 21;
int v = 10;

if (u && v) printf(“ Time to move on!! ”);
if (u & v) printf(“Do it today!! \n”);
Run Code Online (Sandbox Code Playgroud)

这只打印"继续前进的时间!!" 这是有道理的,因为u和v在第一个if语句中都是正确的但是对于"if(u&v)"我不确定它是如何确定这是真还是假.我明白了它是21和10的两个二进制表示但是接着是什么?谢谢!

c bitwise-operators

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

标签 统计

bitwise-operators ×1

c ×1

python ×1

recursion ×1