python 中的一个算法问题

domain_name = ["sohu", "sina", "baidu", "lagou", "qichacha", "tianyancha", "qq.com", "163.com", "juzi.com",
                            "36kr", "cyzone", "qixin", "kanzhun", "liepin", "zhihu", "weibo", "apple", "zhaopin",
                            "baike"]
def filter_url(url):
    for domain in domain_name:
        if domain in url:
            return
        
if filter_url("xy2.netease.com/thread"):
    print("xy2.netease.com/thread")
    
就是一任何一个domain_name的字符在传入的url 中出现就pass 如果没有 就打印这url 我这样写为啥没有打印呢?
阅读 1.7k
3 个回答

你的filter_url返回了None,永远是None
bool(None)==False
所以if永远无法通过

def filter_url(url):
    for domain in domain_name:
        if domain in url:
            return True

如果我没理解错你的意思的话:

def filter_url(url):
    for domain in domain_name:
        if domain in url:
            pass
        else:
            print(url)

函数中,一旦出现return该函数就结束,如果使用 return 的话,一旦判断为True,就会终止过滤

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题