如何让我的 discord 机器人在 2 个给定值之间生成一个随机数?

问题描述 投票:0回答:1
@bot.command(name='randnum')
async def randnum(ctx, arg1, arg2):
  randnum = random.randint(*arg1, *arg2)
  await ctx.send('spinning...')
  time.sleep(2)
  await ctx.send('your random number is', randnum)

arg1 和 arg2 将是用户输入的数字,然后机器人从这些值之间随机选择一个。

当我运行它时,它给我 TypeError: randnum() missing 1 required keyword-only argument: 'arg2' 为什么会发生这种情况,我该如何解决?

python discord
1个回答
0
投票

您的代码的问题是 random.randint() 方法需要两个整数参数,但 arg1 和 arg2 是需要转换为整数才能在 random.randint() 方法中使用的字符串。

您可以通过将 randnum 行更改为以下内容来修复错误:

randnum = random.randint(int(arg1), int(arg2))

这会将 arg1 和 arg2 字符串转换为整数,然后再将它们传递给 random.randint()。

此外, await ctx.send('your random number is', randnum) 行将引发 TypeError 因为您将两个参数传递给 ctx.send() 而不是一个。您可以通过使用 + 运算符连接字符串和随机数来解决此问题,如下所示:

await ctx.send('your random number is ' + str(randnum))

总而言之,您的代码应如下所示:

@bot.command(name='randnum')
async def randnum(ctx, arg1, arg2):
  randnum = random.randint(int(arg1), int(arg2))
  await ctx.send('spinning...')
  time.sleep(2)
  await ctx.send('your random number is ' + str(randnum))
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.