基于python的discord机器人的随机数生成器
我想做的是当有人进入命令!random(argument)我希望机器人生成一个介于1和作为参数的值之间的数字。但每当我尝试这样做时,它都会给我带来6个不同的错误,这些错误很长,对我来说毫无意义。下面是此命令的当前代码基于python的discord机器人的随机数生成器,python,random,discord,discord.py,Python,Random,Discord,Discord.py,我想做的是当有人进入命令!random(argument)我希望机器人生成一个介于1和作为参数的值之间的数字。但每当我尝试这样做时,它都会给我带来6个不同的错误,这些错误很长,对我来说毫无意义。下面是此命令的当前代码 @Bot.command(pass_context=True) async def random1and10(ctx, number): arg = random.randint(1, number) if number: await Bot.say
@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个不同的错误,这些错误很长,对我来说毫无意义
也许它们对其他人来说是有意义的:)我对这个网站比较陌生,但我认为在你的帖子中包含它们会更好。干杯 分配
arg
时,在检查if
语句中是否存在参数number
之前,您正在使用该参数。第一件事是在if
语句中而不是在它之前分配arg
。将number
输入也转换为int
可能是个好主意,如下所示<代码>随机1和10(ctx,编号:int):。除此之外,如果不知道你会遇到什么具体的错误,别人也不会给你很多建议。