Python 掷骰子命令的问题

Python 掷骰子命令的问题,python,discord.py,Python,Discord.py,我正在尝试生成一个命令'-dice',在该命令中,它会用一个介于1和2之间的随机数进行响应。然而,如果他们没有把数字放在1和2之间,那么它只是在1和6之间 我试过一些代码,它说“number1和number2”是一个必需的参数,但它什么也不放。当我输入数字时,它说“nil”没有定义 import random @client.command() async def dice(number1, number2): if number1 == nil and number2 == nil:

我正在尝试生成一个命令'-dice',在该命令中,它会用一个介于1和2之间的随机数进行响应。然而,如果他们没有把数字放在1和2之间,那么它只是在1和6之间

我试过一些代码,它说“number1和number2”是一个必需的参数,但它什么也不放。当我输入数字时,它说“nil”没有定义

import random
@client.command()
async def dice(number1, number2):
    if number1 == nil and number2 == nil:
        number = random.randint(1,6)
        print(f"The dice rolled a {number}!")

else:
    number = random.randint(number1, number2)
    print(f"The dice rolled a {number}!")
输入:-骰子 输出:骰子滚了一个

输入:-骰子[number1][number2]
输出:骰子掷了一个[number1和number2之间的数字]

nil
,我想你的意思是
None
?如果是这种情况,我看到您正在尝试检查参数
number1
number2
是否被传递到函数中

幸运的是,您不需要实现任何逻辑,只需更改函数定义:

import random
@client.command() #-> not sure what this is meant to achieve
async def dice(number1=1, number2=6): #-> not sure why you have async here?
    number = random.randint(number1, number2)
    print(f"The dice rolled a {number}!")

在定义中设置
number1=1
number2=6
基本上意味着:“
dice
函数有两个(可选)参数。如果在调用函数时未传入这些参数的值,则默认情况下将它们分别设置为1和6。但是,如果提供了这些参数的值,请忽略默认值,并使用传递到函数调用中的值作为相应的值。

要实现默认值的所需行为(例如1或6),必须在函数定义中指定,因此可以得到如下结果:

import random
@client.command()
async def dice(number1=1, number2=6):
    number = random.randint(number1,number2)
    print(f"The dice rolled a {number}!")

这样,当未提供任何值时,将使用默认值(在“=”之后)。在初始代码中,您需要一个
number1
number2
参数,因此当没有(或只有一个)给定时,它会崩溃。

什么是
nil
?你为什么把它放在那里?