def find_starman(board):
row_number = 0
column_number = 0
for star in board:
for j in range(len(board):
for i in range(len(board):
if star[j][i] == '*':
j += 1
i += 1
return [j,i]
我不知道,每次我运行程序,它说它是超出范围?
我怎样才能解决这个问题?
(还有,忘了说问题,if找到“*”时返回j+1和i+1)
Tags:
您应该从代码中删除j+=1和i+=1,并修改return,如下所示:return(j+1,i+1)。我想这就是你想做的
对于
for
循环,您不需要在循环体中增加迭代器,因为它将在每个循环后自动更新为新值(在本例中,增量为1,因为您将它指定为在range
上迭代,步骤为1)换句话说,这些行是不必要的:
此外,从您编辑的问题来看,似乎您希望返回找到的
*
的坐标(i+1, j+1)
。在这种情况下:1)如果您只想返回可以找到的第一个
*
的坐标,并立即退出函数,您可以执行以下操作:2)如果要返回数组中所有
*
的坐标,可以在构建循环之前创建新变量(如空列表),对于for
循环的每次运行,将找到的i+1
和j+1
存储为该变量的子元组/列表(使用append
)。换言之,是这样的:在任何情况下,迭代器(
i
和j
)要么立即返回,要么存储在另一个对象中,并且不应在for
循环中修改(使用+=
或其他内容)相关问题 更多 >
编程相关推荐