这个身体功能可能有什么问题?

时间:2017-01-30 18:32:11

标签: python function

我正在为一个游戏开发一个函数,我陷入了一个必须返回的函数,如果一个单词包含在一个板中。当它假设为True时,Python的shell会返回一个False条件。 这是我的身体功能:

def board_contains_word(board, word):
    """ (list of list of str, str) -> bool

Return True if and only if word appears in board.
Precondition: board has at least one row and one column.

>>> board_contains_word([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'ANT')
True
"""
for word_index in range(len(board)):
    if word in board:
        return True
    return False

2 个答案:

答案 0 :(得分:0)

你有一个循环,但你忽略了循环计数器。您将每次迭代中的值设置为word_index变量;你应该在循环中使用它。

你的另一个问题是你总是在第一次迭代后返回。你的第二个return应该在外面循环,这样它才会在整个循环耗尽时运行。

for word_index in range(len(board)):
    if word in board[word_index]:
        return True
return False

然而,说到这一点,在Python中你几乎不应该遍历范围(len(某事物))。总是遍历事物本身:

for word_list in board:
    if word in word_list:
        return True
return False

答案 1 :(得分:0)

你正在列表中寻找一个字符串,python不会在列表中递归,即使它确实存在,你仍然找不到它,因为你有一个字符列表而不是字符串:

def board_contains_word(board, word):
    for element in board:  # First Iterate each list in the board.
        if word in ''.join(element):  # Then join the list of characters to make a word and look for your desired word in it
            return True
    return False