python - 在编写不和谐机器人时如何以及是否可以拆分字符串?
问题描述
因此,我是 discord.py 的新手,但我已经学习了 python,所以我可以很容易地跟着教程学习。我正在尝试创建一个非常简单的机器人来尝试掌握语言的窍门,如果我输入 !give(anything) 机器人会回复“(anything) was given”。
有人可以帮我弄这个吗?discord.py 还有什么好的介绍性资源吗?
@client.event
async def on_message(message):
if message.content.find("!give") != -1:
await message.channel.send_message("A" + message[5:] + ' was given')
这是我的第一个 ^^ 基于的代码:
@client.event
async def on_message(message):
if message.content.find("!givehug") != -1:
await message.channel.send("**A hug was given**")
elif message.content.find("!givekiss") != -1:
await message.channel.send("**A kiss was given**")
解决方案
请记住,使用 find 函数并不总是一个好主意(例如,如果您创建一个帮助命令,其中包含所有命令的列表,您将得到一个误报)。也许您可以检查第一个字符是否是您的前缀,然后替换您找到的命令:
def give(message):
str = message.content.split(" ")[0].replace("give", "")
message.channel.send("**A "+str+" was given**")
// ...
// ... your code ...
// ...
prefix = "!"
if (message.content[0] == prefix):
command = message.content.split(" ")[0]
if(command == prefix + "give"):
// code block
give(message)
elif(command == prefix + "another-command"):
// code block
pass
分离代码是一种很好的做法,因此如果您可以使用更多功能。
推荐阅读
- python - 在 OpenCV 中编写彩色矩形时出现问题
- xslt - XSL - 如何正确地将节点值连接成一个格式化的节点值
- python - 来自多维字典的键的切片
- python - 在python中自定义多个时间序列的任何解决方法(更新)?
- python-3.x - 无法将 scipy 安装到 Raspberry pi 4 (raspbian)
- python - Python3 正则表达式 findall
- node.js - 使用 GraphQL 的 BigQuery
- ggplot2 - 堆叠条形图标签——使用 geom_text 在基于值的 y 轴上标记 %
- python - Python - 在本地打包项目
- javascript - Promise.all([ anotherPromise, anotherPromise ]) 当嵌套 promise 时,父级没有阻塞