Python 掷骰子命令的问题
我正在尝试生成一个命令'-dice',在该命令中,它会用一个介于1和2之间的随机数进行响应。然而,如果他们没有把数字放在1和2之间,那么它只是在1和6之间 我试过一些代码,它说“number1和number2”是一个必需的参数,但它什么也不放。当我输入数字时,它说“nil”没有定义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:
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
?你为什么把它放在那里?