0

我正在为 reddit 机器人制作程序。该程序的一部分要求我在文件中搜索查询以防止重复发布这是我的代码:

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!为什么要跳过返回语句?我要搜索的文件是空的。

4

1 回答 1

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永远不会到达该语句的下一行。

于 2013-03-07T15:48:36.613 回答