[英]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.