我正在尝试创建命令'-dice',然后在命令中响应一个介于number1和number2之间的随机数。但是,如果他们没有输入数字1和数字2,那么它只会在1和6之间进行。
我尝试了一些代码,它说“ number1 and 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}!")
输入:-dice 输出:骰子掷出
输入:-dice [number1] [number2] 输出:骰子掷出[number1和number2之间的数字]
答案 0 :(得分:0)
通过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 :(得分:0)
要获得所需的默认值行为(例如1或6),您必须在函数定义中指定该值,这样您就可以得到以下内容:
php artisan tinker
这样,当不提供默认值时,将使用默认值(在'='之后)。在您的初始代码中,您需要一个import random
@client.command()
async def dice(number1=1, number2=6):
number = random.randint(number1,number2)
print(f"The dice rolled a {number}!")
和number1
参数,因此当没有(或只有一个)给出时,它会崩溃。