Elif 语句似乎没有正确读取变量

Elif statement does not appear to be reading variable correctly

我知道 elif user == whitelist: 中的两个值是相同的并且应该触发 elif 语句但是代码只是通过 elif 语句并转到 else 语句。当我放置 elif user == "562448514349662208": 时,elif 语句确实有效,但是我希望 elif 语句能够从变量中读取。我对其他变量进行了一些测试,由于某种原因,当我与变量进行比较时,elif 语句不起作用

如果您需要更多上下文,这是我的更多代码

whitelist = "562448514349662208"
user = int(message.author.id)
if message.author == bot.user:      
    content = message.content[3:]
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.delete()
    await message.channel.send(embed=embedvar)
if user == whitelist:
    content = message.content[3:]
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)
else: 
    content = user
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)
whitelist = "562448514349662208"
user = int(message.author.id)
if message.author == bot.user:      
    content = message.content[3:]
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.delete()
    await message.channel.send(embed=embedvar)
if user == int(whitelist):
    content = message.content[3:]
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)
else: 
    content = user
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)

您正在比较一个字符串和一个 int...它们必须是同一类型才能检查它们是否相同。

你的类型都不匹配:

whitelist = "562448514349662208"   # type: str
user = int(message.author.id)      # type: int  <-- I don't think you want this!
if message.author == bot.user:      
    content = message.content[3:]  # type: str
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.delete()
    await message.channel.send(embed=embedvar)
if user == whitelist:
    content = message.content[3:]  # type: str
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)
else: 
    content = user                 # type: int
    color = discord.Color(value=int("%06x" % random.randint(0, 0xFFFFFF), 16))
    embedvar = discord.Embed(description=content, color=color)  
    await message.channel.send(embed=embedvar)

基于 content 在其中两个分支中分配给字符串切片(我认为?)这一事实,我猜您实际上也希望 user 成为字符串,既用于与白名单进行比较,也用于设置 content。只需从第二行删除 int 转换。