Python如何检测输入字符串包含列表指定元素实现URL跳转与搜索功能
Python代码逻辑修正方案
你原有代码的核心问题是webstr in search_string的判断语法错误,该写法是判断整个webstr列表是否作为子项存在于字符串中,显然不可能成立,因此URL匹配分支永远不会触发。
你可以通过Python内置的any()函数实现「列表中任意短语匹配即命中」的逻辑,修正后代码如下:
import webbrowser webstr = ['https://','http://','www.','.com','.co.','.org','.net','.gov','.edu','.nic'] # 用strip清除首尾空白,避免用户误输空格导致判断异常 search_string = input("Search Google or Type a URL: ").strip() if len(search_string) < 1: webbrowser.open_new_tab("https://www.google.com") print("Opening Google.") # 遍历webstr,只要有任意一个关键词在输入内容中就命中URL逻辑 elif any(keyword in search_string for keyword in webstr): # 可选优化:如果输入的URL没有HTTP前缀,自动补全https://避免无法正常打开 if not search_string.startswith(('http://', 'https://')): search_string = 'https://' + search_string webbrowser.open_new_tab(search_string) print("Opening", search_string) # 其余情况走谷歌搜索逻辑 else: webbrowser.open_new_tab(f"https://www.google.com/search?q={search_string}") print("Searching Google for", search_string)
内容的提问来源于stack exchange,提问作者ZXCVB0T
相关产品推荐
相关产品推荐

