【发布时间】:2021-12-30 18:54:21
【问题描述】:
我正在尝试构建一种简单的聊天机器人,但是当 input 不在字典中时,else 块正在正常工作...
我想打印value,即使input 来自keys 和其他一些词。
例如:
发短信:你好 回答:你好
所以,如果input 包含我想要打印值的任何键。
如果你知道制作这个的方法,请告诉我。谢谢。
words = {"good night": ["nighty night", "good night", "sleep well"],
"good morning": ["good morning", "wakey-wakey!", "rise and shine!"],
"hi": ["hello", "hey", "hola"]
}
text_punk = input("text something: ")
if text_punk in words:
punk = random.choice(words[text_punk])
print(punk)
talk(punk) #this is for pyttsx3
else:
print("problem!")
【问题讨论】:
-
在这种情况下,您需要检查字典中的关键字是否存在于输入文本中,例如
if any( k in text_punk for k in word):... -
感谢@Copperfield 的回答。我试过了,但是当我运行代码时我得到了一个 KeyError。
-
哦对了,你还需要确定哪个key给了匹配,上面的代码只说有匹配
-
是的,你有什么解决办法吗?
标签: python dictionary input chatbot