PyCharm开发Discord随机响应Bot的匹配问题求助
问题解决:让Discord Bot在包含触发词时就响应
你的问题出在**精确匹配(==)**的判断逻辑上——只有当输入内容和触发词完全一模一样时,Bot才会触发响应,只要多了任何额外字符或内容就不会生效。
修改方案
把精确匹配改成包含匹配,同时把所有触发词统一整理,避免重复代码,方便后续维护:
def get_response(message: str) -> str: p_message = message.lower() # 把所有需要触发的关键词整理成列表,统一转小写 trigger_words = [ '@madrid', '@madridddsta', 'madridddsta#7819', '<@949798747586584647>', '@xtreditz', '@xtreditz#6250', '<@841488565225390080>' ] # 检查消息是否包含任意一个触发词 for word in trigger_words: if word in p_message: return 'Reduce on pinging him, wait until he comes online and ask him what you wanted to ask.' # 如果没有匹配到任何触发词,返回空或者默认响应(根据你的需求调整) return ''
说明
- 统一将输入消息和触发词转成小写,避免大小写差异导致的匹配失败
- 用
in操作符判断触发词是否存在于输入消息中,只要包含就触发响应 - 把所有触发词集中在一个列表里,后续新增触发词直接添加到列表即可,无需重复编写if判断,代码更简洁易维护
内容的提问来源于stack exchange,提问作者iceler
相关产品推荐
相关产品推荐

