在Python中运行bfs algo代码时出现TypeError

在Python中运行bfs algo代码时出现TypeError,python,search,matrix,breadth-first-search,grid-search,Python,Search,Matrix,Breadth First Search,Grid Search,这是我正在运行的代码,它给了我一个TypeError。我尝试遍历二维数组,然后返回从起点到目标点的路径 我对路径遍历应用了广度优先搜索,但似乎算法有问题 类网格: def ___;初始化(自,str1): self.maze=str1.splitlines() def get_start_cordinates(自我): rr=0 cc=0 返回rr,cc def总管(自、右、c): 队列=[] 访问={} 访问[(r,c)]=(-1,-1) queue.append((r,c)) 当len(队列

这是我正在运行的代码,它给了我一个TypeError。我尝试遍历二维数组,然后返回从起点到目标点的路径

我对路径遍历应用了广度优先搜索,但似乎算法有问题

类网格:
def ___;初始化(自,str1):
self.maze=str1.splitlines()
def get_start_cordinates(自我):
rr=0
cc=0
返回rr,cc
def总管(自、右、c):
队列=[]
访问={}
访问[(r,c)]=(-1,-1)
queue.append((r,c))
当len(队列)>0时:
r、 c=队列.pop(0)
如果r==4且c==2:
路径_实际值=[]
而r!=-1:
路径_实际追加((r,c))
r、 c=到访[(r,c)]
路径_实际值。反向()
返回路径_实际值
#避免重复代码:创建循环
对于dx,dy in(-1,0)、(0,-1)、(1,0)、(0,1)、(1,1)、(1,-1),(-1,1),(-1,1),(-1,-1)):
新的r=r+dy
新的_c=c+dx
如果(0

使用您创建的对象而不是类。

而不是
Grid.main(…)
call
maze.main(…)
@kuco23非常感谢你。另外,你能检查一下这个代码是否正确吗?因为我没有得到所需的输出。你的逻辑似乎有缺陷。试着试着运行它,看看你哪里出了问题。@NaumanNaeem好的。谢谢你的帮助。我会在检查完整个算法后更新这个问题,因为它只是给了我一些帮助输出为“None”。再次感谢。@我在这里发现了一些错误。首先,当对字符串调用
len
时,它会给出字符串的长度,而您需要字符串中的元素数。我认为inside
\uuuu init\uuuuu
应该是
self.maze=[s.split(),用于str1.splitlines()]
将c和r的角色颠倒过来。r应该是行数,当您将其增加
dy
时,c应该是列数,所以如果r==2和c==4,只需编写

path = maze.main(*maze.get_start_cordinates())