-3

これは私がやるように頼んだことです:

save_friends(filename, friends_list)ファイル名と友達リストを受け取り、そのリストを正しい形式でファイルに書き込みます。したがって、たとえば、 save_friends('friends.csv', load_friends('friends.csv')) は、まったく同じ内容で友人ファイルを上書きする必要があります。

これは私のコードです:

def save_friends(filename, friends_list): 
    """
    take a file name and a friends list and wrients that list
    to the file in the correct format

    save_friend(file, list) -> list
    """
    friends_list = []
    f = open(filename, 'w')
    for friend in friends_list:
        f.write(friend+ '\n')
    return friends_list 
    f.close()

問題は、テキスト コード (学校が提供する簡単なテストを実行するコード) を実行すると、

>>>save_friends('friends_output.csv', d)
[ ]

Traceback (most recent call last):
  File "E:\study\Yr 1\Semister1\CSSE1001\Assignment\sample_tests.py", line 84, in <module>
    assert res == None, "save_friends didn't return None"
AssertionError: save_friends didn't return None

では、入力が実際にはリストではないときに「なし」を返すにはどうすればよいですか (この状況では入力「d」のように)。

4

1 に答える 1

2

friends_list関数の先頭で、引数を空のリストに置き換えます。

friends_list = []

その行を削除します。

また、関数は何も返すべきではありません。return関数から期待される割り当てテストに合格するには、行も削除する必要がありNoneます (これがデフォルトです)。

.close()早く戻ることで、ファイルを呼び出すこともないことに注意してください。

于 2013-03-29T14:33:05.990 に答える