【发布时间】:2020-03-21 01:44:16
【问题描述】:
所以我有一个名为 words.txt 的文本文件,它包含 3 个单词:
apple
ship
door
而我要做的是让用户输入一个单词,然后搜索文件以查看是否有这样的单词,如果没有则添加:
def search(word):
file = open("words.txt", "r+")
for line in file:
if line == word:
return False
file.write(word + "\n")
return True
然后我使用该函数检查并打印结果,但问题是当我输入单词 ship 或列表中的任何其他单词时,它应该说它不存在是的。
【问题讨论】:
-
正如其中一个答案所说,您未能定义预期的返回值是什么。如所写,在匹配的情况下返回 False,在不匹配的情况下返回 True(但文件已更新)。这似乎不是您所期望的。首先编写一个描述结果的文档字符串,然后您可以检查代码是否实现了这些结果(最好通过编写测试用例:))
-
这可能是错误的两种方式:1)它无法返回
False,因为您正在比较"ship"和"ship\n",而不是"ship"和"ship",或者2 ) 当"ship"与"ship"进行比较时,它无法返回True。需要明确的是,绝对您不承认line将以换行符结尾是一个问题,但您也可能交换了返回值。