我要做的是当某人输入命令!随机(参数(时,我希望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个不同的错误,这对我来说毫无意义。
也许它们对他人很有意义:)我对这个网站相对较新,但是我认为将它们包括在您的帖子中会更好。欢呼!