基于Python的Discord Bot的随机数生成器



我要做的是当某人输入命令!随机(参数(时,我希望bot生成1个数字,并在其提出的内容之间生成一个数字。但是,每当我尝试这样做时,它会给我大约6个不同的错误,这对我来说毫无意义。我目前的此命令代码在下面。

@Bot.command(pass_context=True)
async def random1and10(ctx, number):
    arg = random.randint(1, number)
    if number:
        await Bot.say(arg)
    else:
        await Bot.say('Please select a valid number')

我猜number作为字符串传递,所以:

  • 您需要将其施放给整数,然后再将其传递给randint
  • 可能需要在"说"之前再次将其施放给字符串

更重要的是,您没有使用正确的方法检查错误的整数值;if number永远不会是False,因为您的randint调用只会返回大于0的整数(或提出错误(。


固定版本将是:

@Bot.command(pass_context=True)
async def random1and10(ctx, number):
    try:
        arg = random.randint(1, int(number))
    except ValueError:
        await Bot.say("Invalid number")
    else:
        await Bot.say(str(arg))

您的里程可能会有所不同,我没有运行。我不确定装饰功能签名。


每当我尝试这样做时,它会给我大约6个不同的错误,这对我来说毫无意义。

也许它们对他人很有意义:)我对这个网站相对较新,但是我认为将它们包括在您的帖子中会更好。欢呼!

最新更新