find()在我的代码中不起作用
我不知道为什么find()不能识别字母。 下面是我的代码
def search(Object, maze_row, letter) :
Object[0] += 1
Object[1] = maze_row.find(letter)
def main() :
row_col = "5 5"
input_maze = "#####\n#..B#\n#.#.#\n#RO.#\n#####"
maze = input_maze.split('\n')
red_ball = [-1,-1]
blue_ball = [-1,-1]
hole = [-1,-1]
for maze_row in maze :
search(red_ball, maze_row,'R')
search(blue_ball, maze_row,'B')
search(hole, maze_row,'O')
if(red_ball[1] >= 0 and blue_ball[1] >= 0 and hole[1] >= 0) :
break
print(red_ball, blue_ball, hole)
if __name__ == '__main__' :
main()
结果是([4,-1],[4,-1],[4,-1])
find()
正在找到你的信但是,在随后的
for maze_row in maze
循环中,由于在下一行中找不到元素,它将Object[1]
设置回-1
您可以通过多种方式解决此问题,最简单的方法是更改搜索功能:
编辑:缩进
find
没有问题问题是,即使在找到匹配项并设置了正确的索引之后,代码仍会在行上循环
唯一能从循环中中断的条件是三个字母
R
、B
、O
都出现在同一行中,这显然是不可能的因此,当您尝试打印这三个变量时,您将看到最后一行的结果,其中不包含任何目标字母
如果您创建一个函数来搜索迷宫中字母的行和列,会更简单:
相关问题 更多 >
编程相关推荐