2010-05-22 86 views
0

如何解决这个方案,但问题是,当它打印出的坐标它给我的开始和结束7,我会感谢你的帮助,感谢寻找解决赐迷宫txt.file

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" 
+3

...... W时的T? – 2010-05-22 17:36:07

+0

当我运行这个程序,当它打印坐标时,它打印出开始和结束的坐标7它应该是开始(3,4)和完成(0,2)坐标 – alberto 2010-05-22 17:41:08

+0

Ehm ...请更多具体在你问什么。 – lbedogni 2010-05-22 17:41:53

回答

2

看看你的代码的开始:

start = (len(data)) 
finish = (len(data)) 
pos= [] 
for i in range(len(pos)): 

len(pos)为零,当然(你刚分配的空单pos,所以还有什么可能是长度可能只是0 ?!),所以循环执行零次,startfinish永远不会改变,并且在循环之后为它们打印的内容正是您在此处分配给它们的内容 - 尽管所有冗余括号完全相同整数为两个(你告诉我们是7,所以大概无论data是,它的长度为7)。

+0

我刚才发现7是txt文件中的行数,我该如何解决这个问题? – alberto 2010-05-22 17:50:42

+0

txt文件每行有7行和10个元素。 – alberto 2010-05-22 17:51:33

+0

你可以使用**''''列表来尝试** - 你从不会在你的代码中的任何地方使用它(除了在开始的时候对'len'的两次调用),而是将一个空列表分配给'pos '然后'使用''pos'(这显然什么都不做)。无论你想解决什么“数据”相关的问题,你怎么可能甚至解决它,而从来没有,使用**什么'数据'包含?! – 2010-05-22 17:53:36