为什么我的机器人无法实现这些参数?

时间:2019-10-19 10:23:57

标签: python discord discord.py python-asyncio

我有一个机器人,该机器人应该在命令中提供有关玩家的信息。命令是:

-Whois [USER]

然后该漫游器会回复该信息。

我输入'iamonf1r3'作为用户参数,它给出了mip232的响应。这是我的代码:

@client.command()
async def Whois(parameter):
    name = parameter
    if name == "mip232" or name == "Mip" or "219884374378676224":
        await client.say("Roblox Name: `mip232` \nDiscord Name: `Mip#3981` \nPin: `FS01` \nRank: `Chief Fire Officer` \nDivision: `All` \nActivity Level: `Active` \nDriving Level: `Advanced` \nDisciplinary Action: `None`")
    elif name == "iamonf1r3" or "iamonf1r3" or "335014153460776962":
        await client.say("Roblox Name: `iamonf1r3` \nDiscord Name: `iamonf1r3#7277` \nPin: `FS02` \nRank: `Deputy Chief Fire Officer` \nDivision: `All` \nActivity Level: `Active` \nDriving Level: `Advanced` \nDisciplinary Action: `None`")

1 个答案:

答案 0 :(得分:0)

您正在使用或使用错误的方式

说实话,您完全搞砸了您的“或陈述”

每个或必须有新条件 正确:

if name == "mip232" or name == "Mip" or "219884374378676224":

if name == "mip232" or name == "Mip" or name == "219884374378676224":

您对elif进行了同样的操作,但我会留给您解决此问题。

说明: if <CONDITION> or <CONFITION>

您在第一个条件中提供的参数“名称”不会分配给第二个或。

另外,如果您询问if name,它将仅查看此变量是否存在=>如果存在,则为True,如果不存在,则为False。

由于存在“ 219884374378676224”,因此您的最后一个or "219884374378676224"基本上会返回True,因为您只是在同一块中对其进行了初始化,而不是查询。

尝试阅读以下内容:https://realpython.com/python-or-operator/