0

Pythonでプログラミングを学ぶコースに参加しました。特定の課題のために、以下に貼り付けたコードを書かなければなりませんでした。

コードのこの部分は 2 つの関数で構成されています。最初の関数は でmake_str_from_row、2 番目の関数はcontains_word_in_rowです。お気づきかもしれませんが、2 番目の関数は最初の関数を再利用しています。私はすでに最初の関数を渡しましたが、再利用する必要があるときに最初の関数に関するエラーが発生するため、2番目の関数を渡すことができません。最初の関数ではエラーが発生しなかったため、混乱します。row_indexグローバル変数が定義されていないと言っています。

ちなみに、2 番目の関数はスターター コードで指定されているため、間違っていることはありません。特に間違っていると思われるコードを渡したので、何が悪いのかわかりません。

採点者のエラーである可能性がある場合に備えて、チームにフィードバックを求めてみましたが、1 週間が経過しましたが、締め切りが 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

どちらかを修正してください。

デモ、関数の本体で使用される名前を引数に一致するように修正します。

>>> 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_rowますboard_contains_word_in_row。関数ではなくを使用boardcontainswordinrowするため、それも修正する必要があります。いずれかの方向。 make_str_from_rowmakestrfromrow

于 2013-10-05T15:46:15.057 に答える