0

我参加了一门学习 Python 编程的课程。对于某个任务,我们必须编写我粘贴在下面的代码。

这部分代码由两个函数组成,第一个是make_str_from_row,第二个是contains_word_in_row。您可能已经注意到,第二个函数重用了第一个函数。我已经通过了第一个函数,但我无法通过第二个函数,因为当它必须重用时,它会给出关于第一个函数的错误,这令人困惑,因为我的第一个函数没有收到任何错误。它说row_index未定义全局变量。

顺便说一句,第二个函数已经在起始代码中给出,所以它不会出错。我不知道出了什么问题,特别是因为我已经通过了可能是错误的代码。

我尝试向团队询问一些反馈,以防评分器中可能出现一些错误,但已经一周了,而截止日期还有 2 天,我没有收到任何回复。我不是在这里寻求答案,我只想向某人询问有关给定错误的解释,以便我自己找出解决方案。我非常感谢您的帮助。

def makestrfromrow(board, rowindex):
    """ (list of list of str, int) -> str

    Return the characters from the row of the board with index row_index
    as a single string.

    >>> make_str_from_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 0)
    'ANTT'
    """

    string = ''
    for i in board[row_index]:
        string = string + i
    return string

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

    Return True if and only if one or more of the rows of the board contains
    word.

    Precondition: board has at least one row and one column, and word is a
    valid word.

    >>> board_contains_word_in_row([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 'SOB')
    True
    """

    for row_index in range(len(board)):
        if word in make_str_from_row(board, row_index):
            return True

    return False
4

1 回答 1

4

您命名了参数,但在函数体中rowindex使用了名称。row_index

修复一个或另一个。

Demo,修复函数体中使用的名称以匹配参数:

>>> def makestrfromrow(board, rowindex):
...     string = ''
...     for i in board[rowindex]:
...         string = string + i
...     return string
... 
>>> makestrfromrow([['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']], 0)
'ANTT'

请注意,这两个函数boardcontainswordinrow都与 docstring 不一致在那里它们被命名为make_str_from_rowboard_contains_word_in_row。您的boardcontainswordinrow函数使用 make_str_from_row, not makestrfromrow,因此您也必须更正它;一个方向或另一个方向。

于 2013-10-05T15:46:15.057 回答