Python 查找给定maze.txt文件的解决方案
我如何修复这个程序,问题是当它打印出坐标时,它给我一个7作为开始和结束,我将感谢你的帮助,谢谢Python 查找给定maze.txt文件的解决方案,python,Python,我如何修复这个程序,问题是当它打印出坐标时,它给我一个7作为开始和结束,我将感谢你的帮助,谢谢 start = (len(data)) finish = (len(data)) pos= [] for i in range(len(pos)): for j in range(len(pos[i])): if pos[i][j] == "S": start=(i,j) elif pos[i][j] == "F":
start = (len(data))
finish = (len(data))
pos= []
for i in range(len(pos)):
for j in range(len(pos[i])):
if pos[i][j] == "S":
start=(i,j)
elif pos[i][j] == "F":
finish=(i,j)
print "S found in",start,
print "\nF found in",finish,"\n"
查看代码的开头:
start = (len(data))
finish = (len(data))
pos= []
for i in range(len(pos)):
len(pos)
当然是零(您刚刚将空列表分配给了pos
,所以那么这个长度可能只有0吗?!),所以循环执行零次,start
和finish
永远不会改变,在循环之后,你为它们打印的内容正是你在这里分配给它们的内容——尽管所有多余的括号都是相同的整数(你告诉我们是7
,所以想必无论数据是什么,它的长度都是7)。当我运行这个程序时,当它打印坐标时,它打印出开始和结束a 7的坐标,它应该是开始(3,4)和结束(0,2)坐标HM。。。这是一个迷宫,我需要得到开始和结束的坐标,但我先打印它们,但没有打印我想要的。这是程序开始=(len(data))结束=(len(data))结束=(len(data))pos=[]对于范围内的i(len(pos)):对于范围内的j(len(pos[i]):如果pos[i][j]=“S”:start=(i,j)elif pos[i][j]=“F”:finish=(i,j)print“S found in”,start,print“\nF found in”,finish,“\n”编辑以修复代码格式。我刚刚计算出7是txt文件中的行数,我如何解决这个问题?txt文件有7行,每行10个元素。你可以尝试使用数据列表——你永远不会在代码中的任何地方使用它(除了开始时对len
的两个调用),而是给pos
分配一个空列表,然后“使用”pos
(这显然没有任何作用)。无论你想解决与数据
相关的任何问题,你怎么可能梦想着解决它,而从不使用数据
包含的内容@alberto,您可以使用任何文本编辑器更改代码。大概你应该将它更改为删除愚蠢的分配给pos
,并将pos
的所有用法更改为数据的用法。哦,与其奇怪地初始化start和finish,不如在开始时将None
分配给它们。