Python 检测输入中的关键字

Python 检测输入中的关键字,python,chatbot,Python,Chatbot,所以我对Python完全陌生。我一周前开始的。我正在写一个简单的聊天机器人,现在我想问一个开放式问题,如果它在输入中选择了某些关键字,它将打印出一个特定的响应。我基本上需要一个if命令来检测是否使用了某个单词。我希望有办法做到这一点。要检测子字符串,可以使用操作符中的。 例如: 您可以这样做: inpt = input("How are you?") if "good" in inpt: print("Okay you are good&

所以我对Python完全陌生。我一周前开始的。我正在写一个简单的聊天机器人,现在我想问一个开放式问题,如果它在输入中选择了某些关键字,它将打印出一个特定的响应。我基本上需要一个if命令来检测是否使用了某个单词。我希望有办法做到这一点。

要检测子字符串,可以使用操作符中的

例如:


您可以这样做:

inpt = input("How are you?")
if "good" in inpt:
    print("Okay you are good")
else:
    print("what happend?")

input()请求用户输入,if语句检查用户答案中的关键字。

有多种方法可以做到这一点。最好的解决方案是使用正则表达式,这样您就可以轻松检测多个关键字,而不是将一打if和elif放在一起。
例如:

import re
regex_name = re.compile(r'name?$', flags=re.IGNORECASE)
regex_age = re.compile(r'age?$', flags=re.IGNORECASE)
my_input = input("Name : John")
if (regex_name.match(my_input)):
  print("The string Name was found")
elif( regex_age.math(my_input)):
  print("The string age was found")
else:
  print("Neither Name or Age were found")

所以我这样做了,它一直默认为if,而elif或else都不起作用。是的,当答案中有好的东西时会发生这种情况,但是当你使用另一个if而不是elif时,你可以检测到其他关键字,所以我应该将所有elif都改为ifs?我这样做了,现在它只打印每个响应。当你只需要一个关键字时,你就使用elifs,否则当你想得到多个关键字时,就使用if。例如,答案“我很好”,当你用if表示罚款,用elif表示非常,只有if会激发,因为它不会到达elif,但当你用if表示罚款,用if表示非常,两者都会激发,因为它们彼此独立。
import re
regex_name = re.compile(r'name?$', flags=re.IGNORECASE)
regex_age = re.compile(r'age?$', flags=re.IGNORECASE)
my_input = input("Name : John")
if (regex_name.match(my_input)):
  print("The string Name was found")
elif( regex_age.math(my_input)):
  print("The string age was found")
else:
  print("Neither Name or Age were found")