检测输入是否指定为discord.py

2024-05-18 15:46:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在检测输入是否被指定时遇到了一些问题。它只是跳到代码的末尾并给出一个错误,跳过if语句

@bot.command()
async def div(ctx, left: int, right: int):
        if left == "":
                embedVar = discord.Embed(discription='.div', color=0xFA8072)
                embedVar.add_field(name="ERROR", value='Can not divide by zero', inline=False)
                return await ctx.reply(embed=embedVar)
        if right == "":
                embedVar = discord.Embed(discription='.div', color=0xFA8072)
                embedVar.add_field(name="ERROR", value='Please specify a input', inline=False)
                return await ctx.reply(embed=embedVar)

        embedVar = discord.Embed(discription='.div', color=0xFA8072)
        embedVar.add_field(name="Your answer is...", value=left / right, inline=False)
        return await ctx.reply(embed=embedVar)

除了if语句之外的所有语句都可以正常工作


Tags: namerightdivaddfieldifvalueembed
2条回答

您正在检查变量leftright是否为空字符串。然而,这些变量被定义为类型int。 尝试检查Noneistead:

if left == None:
    # do something

if right == None:
    # do something else

对于可选参数,必须设置默认值。例如:

@bot.command()
async def test(ctx, arg1: int = None, arg2: int = None):
    if arg1 is None:
        # handle
    if arg2 is None:
        # handle
    # send

最好使用on_command_error event而不是检查每个命令中是否都指定了参数

相关问题 更多 >

    热门问题