我正在为reddit bot制作一个程序。该程序的一部分要求我在文件中搜索查询以防止双重发布,这是我的代码:
def search (filetosearch,query):
with open(filetosearch, 'r') as inF:
for line in inF:
if len(str(line)) == 0 | query not in line:
return False
break
else:
return True
break
每当我运行它时,它都会返回None!为什么要跳过return语句? 我要搜索的文件为空。
答案 0 :(得分:0)
如果文件为空,那么你永远不会进入for
循环,因为循环迭代的没有。
只需在该边缘案例的函数末尾添加return False
。
当一行与查询不匹配时,你也不想要返回,只需循环到下一行:
def search (filetosearch, query):
with open(filetosearch, 'r') as inF:
for line in inF:
if query in line:
return True
return False
请注意,您的break
语句是多余的;当执行return语句时,该函数立即退出,永远不会到达带有break
语句的下一行。