两个明显精确的字符串被认为是不同的

时间:2017-08-12 20:35:32

标签: python-3.x equality discord

使用我的机器人,您需要输入两个输入,scoreusername。这里的问题是username。这是代码:

from discord.ext import commands

bot = commands.Bot(command_prefix='!', description="Moderates the server")


@bot.command(pass_context=True)
async def rate(stuff, score, username):
    user_scores = open("userratings.txt", "r")
    ratings = []
    with user_scores:
        for line in user_scores:
            newline = line.split("#")
            if newline[1].endswith("\n"):
                newline[1] = newline[1][:-1]
            ratings.append(newline)
    for item in ratings:
        item[1] = item[1].split()
    for item in ratings:
        await bot.say(item[0] + "#" + item[1][0] + " " + username)
        if username == item[0] + "#" + item[1][0]:
            await bot.say("HI")
            break


bot.run("token")

出于隐私原因,我不会透露令牌。最后if循环中的for语句出现问题,我将输入的用户名与用{1}}一个接一个地稳定生成的用户名列表进行比较。我输入我自己的用户名(item[0] + "#" + item[1][0]),机器人输出相同的字符串,如下所示:

enter image description here

与使用@Anthony (Tony's Farm)#3370对此处的人员进行ping操作类似,您可以使用服务器提供给您的@username ping其他用户。正如你所看到的,我的机器人没有说"嗨"即使它能够完美复制我的用户名和ID。正如你在那之后所看到的那样,我复制并粘贴了白色的字符,因此我将两个字符串(由程序制作的字符串和我制作的字符串)固定在一起。

那么,即使我复制机器人的输出时,两个明显准确的字符串怎么会出现不同呢?它被认为是相同的?

编辑:我尝试过调试但没有帮助:

enter image description here

1 个答案:

答案 0 :(得分:0)

Discord的提及是通过<@User_ID>完成的,因此您需要发送@Person或其他内容,而不是发送<@1957217385902874>

可以通过server.get_member_named('Person#0001')在D.py中按名称获取成员对象,但这可能并不总是有效,因为人们可以更改其名称。