Python discord.py 阅读全文
问题描述
我正在使用 discord.py 来制作 discord 机器人.我想在用户提到的两个数字之间生成一个随机数.因此,如果用户键入 %rand 1 9
,我希望机器人返回 1 到 9 之间的随机整数,比如 4.到目前为止,这是我的代码:
I am using discord.py to make a discord bot. I would like to generate a random number between 2 numbers mentioned by the user. So if the user types %rand 1 9
, I would like the bot to return with a random integer between 1 and 9, so say 4.
Here is my code so far:
async def on_message(message):
x = str(1)
y = str(2)
if message.content.startswith('%rand ' + x + y):
NumberX = int(x)
NumberY = int(y)
msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
await client.send_message(message.channel, msg)
但是,它不起作用.我不太明白我哪里出错了.我在其他任何地方都找不到其他解决方案.我想我需要强制机器人阅读完整的消息或类似的东西.任何帮助将不胜感激.提前谢谢你.
However, it doesn't work. I don't quite understand where I am going wrong. I couldn't find another solution anywhere else. I assume I need to force the bot to read the full message or something similar. Any help will be appreciated. Thank you in advance.
解决方案
问题在于您的 if 语句从未真正触发过.您正在检查它是否以%rand 12"开头,这不是您想要的.你的代码应该是这样的:
The problem comes from the fact that your if statement is never actually triggered. You are checking whether it starts with "%rand 12" which is not what you are looking for. Here's how your code should look:
async def on_message(message):
if message.content.startswith('%rand '):
vals = message.content.split(" ")
NumberX = int(vals[1])
NumberY = int(vals[2])
msg = "Random Number Is: " + str(random.randint(NumberX,NumberY))
await client.send_message(message.channel, msg)
另外,不要忘记 import random
以使用该功能.
Also, don't forget to import random
in order to use that function.
相关文章