如何从python中的用户输入中找到关键字?

2024-05-15 23:19:46 发布

您现在位置:Python中文网/ 问答频道 /正文

key_words = ("screen", "power", "wifi")

user_input = input("Type: ")

if user_input in key_words:
    print ("you should do this...")

当用户在关键字中键入任何内容时,它将工作,但如果用户在句子中输入,它的工作方式如下:

Type: screen is not working
>>> 

它应该找到关键字“screen”并输入yes,但它只是空白。我知道我必须分割用户的响应,但是对于最近的python,我如何做到这一点呢?


Tags: key用户inyouinputiftype关键字
3条回答

这对any来说是个不错的工作。你想反复检查你的句子,看看列表中是否有一个单词。如果有“ANY”匹配,则返回true:

key_words = ("screen", "power", "wifi")

user_input = input("Type: ")

if any(i in key_words for i in user_input.split()):
    print("you should do this...")

您也不需要对str加大小写,因为它已经给了您一个字符串。所以我把它去掉了,没必要。

正如注释中提到的,事实上,在条件语句的末尾确实有语法问题。

通过将关键字和用户输入语句转换为一个集合,并找到这两个集合之间的交集,就可以得到解决方案

key_words = {"screen", "power", "wifi"}

user_input = raw_input("Type: ")

choice = key_words.intersection(user_input.split())
if choice is not None:
    print("option selected: {0}".format(list(choice)[0]))

输出:

Type: screen is not working
option selected: screen

Type: power
option selected: power

由于split()返回的是一个列表而不是一个值,因此必须单独(在循环中)测试其每个元素。

key_words = ("screen", "power", "wifi")
user_input = input("Type: ")

for word in user_input.split():
  if word in key_words:
    print ("you should do this...")

如果用户输入多个关键字,将打印多条消息。

注意:这是给Python的。对于python2,请改用raw_input。我还删除了input()函数中的str()

相关问题 更多 >