我想要做的是,当有人输入命令!随机(参数),我希望机器人生成一个数字之间的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')发布于 2018-03-30 16:41:59
我猜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个不同的错误,是非常长,对我来说没有任何意义。
也许他们对其他人来说是有意义的:)我对这个网站还比较陌生,但是我认为把他们包括在你的帖子里会更好。干杯!
https://stackoverflow.com/questions/49577305
复制相似问题