这就是我要求做的事情:
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
那么,如果输入不是真正的列表,我怎么能返回'None'(就像在这种情况下输入'd')?
答案 0 :(得分:2)
将friends_list
参数替换为函数顶部的空列表:
friends_list = []
删除该行。
此外,你的功能不应该返回任何东西;您还需要删除return
行以传递分配测试,该测试期望None
来自函数(这是默认值)。
请注意,通过提前返回,您永远不会在文件上调用.close()
。