【问题标题】:Check if a list contains the string input by the user检查列表是否包含用户输入的字符串
【发布时间】:2021-10-18 09:24:33
【问题描述】:

首先,我检查了几个可能的解决方案,但他们没有解决我的问题。

下面是我的代码:

import webbrowser

webstr = ['https://','http://','www.','.com','.co.','.org','.net','.org','.gov','.edu','.nic']
search_string = input("Search Google or Type a URL: ")

if len(search_string)<1:
     webbrowser.open_new_tab("https://www.google.com")
     print("Opening Google.")

elif webstr in search_string:
     webbrowser.open_new_tab(search_string)
     print("Opening",search_string)

elif webstr not in search_string:
     webbrowser.open_new_tab("https://www.google.com/search?q=" + search_string)
     print("Searching Google for", search_string)

我想要的是一种简单的方法来检查输入字符串中提供的 webstr 列表中的短语,如果有任何短语匹配,则相应地在浏览器中打开 url。 如果短语是不在列表中,它应该在浏览器中搜索给定的字符串,或者如果搜索字符串太短,那么它应该返回所说的网站。

附:这是我第一次提出问题,我是 Python 新手。

【问题讨论】:

  • 如果搜索字符串太短 - 这里too short 多少钱?
  • 您可能想要if any(s in search_string for s in webstr):,但对网址有效性的审查相当薄弱。您可能想了解正则表达式(和/或了解错误处理)。
  • 它不起作用。它只是检查条件并跳转到它满足的另一个条件。 @Tranbi
  • 搜索字符串少于 1 个字符 @Ram

标签: python python-3.x list input


【解决方案1】:

您想查看 webstr 列表中存在的任何字段是否是输入的子字符串。你可以这样做:

if any(x in search_string for x in webstr)

以下代码应该适用于您的用例

import webbrowser

webstr = ['https://','http://','www.','.com','.co.','.org','.net','.org','.gov','.edu','.nic']
search_string = input("Search Google or Type a URL: ")

if len(search_string)<1:
     webbrowser.open_new_tab("https://www.google.com")
     print("Opening Google.")

elif any(x in search_string for x in webstr):
     webbrowser.open_new_tab(search_string)
     print("Opening",search_string)

else:
     webbrowser.open_new_tab("https://www.google.com/search?q=" + search_string)
     print("Searching Google for", search_string)

【讨论】:

    猜你喜欢
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2013-01-01
    • 2017-11-20
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多