簡體   English   中英

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轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM