我想要做的是当有人输入命令时!随机(参数)我希望机器人生成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')
答案 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种不同的错误,这些错误很长,对我来说毫无意义。
也许他们可以对别人有意义:)我对这个网站比较新,但我认为在你的帖子中加入它们会更好。干杯!