python - 掷骰子命令问题
问题描述
我正在尝试创建一个命令“-dice”,然后它会以 number1 和 number2 之间的随机数响应。但是,如果他们没有放置 number1 和 number2,那么它只会在 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 之间的数字]
解决方案
通过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。但是,如果提供了这些参数的值,则忽略默认值并使用传递给函数调用的值作为各自的值。
推荐阅读
- django - 在模板中计算三个(或更多)多对多关系
- javascript - 如何将值存储在数组 Jquery 中?
- gpu - 我可以查看已完成的 Slurm 作业使用的特定 GPU 吗?
- mongodb - 远程连接到 mongodb - 无法连接
- batch-file - 批处理脚本 - Findstr "/n" 标志?
- html - 如何在 Blogger 中删除博客文章以外的页面上的侧边栏?
- html - flexbox相关的css没有生效
- php - php根本不显示错误
- ruby - Ruby OptionParser 未正确解析 -- 命令正确
- java - Java中的“?:”运算符是什么?例如 sum += digit > 9 ?数字 - 9:数字;