基于python的discord bot的随机数生成器

时间:2018-03-30 15:44:28

标签: python random discord discord.py

我想要做的是当有人输入命令时!随机(参数)我希望机器人生成1到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')

1 个答案:

答案 0 :(得分:1)

我猜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种不同的错误,这些错误很长,对我来说毫无意义。

也许他们可以对别人有意义:)我对这个网站比较新,但我认为在你的帖子中加入它们会更好。干杯!