[英]Problem with if and else (python, discord.py)
最近我開始使用 python 制作 discord 機器人。 我做了一些命令,比如檢查user1
對user2
的喜愛程度。 user1/2
不能是機器人本身或同一個人。 它大部分時間都運行良好,但是當我添加其他這樣的命令時,一切都停止了。 這是我的代碼:
@bot.command()
@commands.check(user_is_me)
async def milosc(ctx, user1: discord.Member, user2: discord.Member):
milosc_procent = random.randint(1, 101)
if user1 == user2:
await ctx.send("**Nie możesz sprawdzic jak bardzo ktoś kocha samego siebie**")
if user1.name == 'Pieseł bot':
await ctx.send("**Nie możesz sprawdzić jak bardzo bot kogoś kocha. To nie ma sensu !**")
if user2.name == 'Pieseł bot':
embed=discord.Embed(title="Jak bardzo kochasz Pieseł bot-a", description=f"Użytkownik {user1.name} kocha użytkownika {user2.name} w 100%. Bo kto takiego słodkiego piesełka by nie kochał <:pepeLove:831157130153164831>", color=0xff0000, timestamp=datetime.datetime.utcnow())
embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
await ctx.send(embed=embed)
else:
embed=discord.Embed(title="Jak bardzo się kochają", description=f"Użytkownik {user1.name} kocha użytkownika {user2.name} w {milosc_procent}%", color=0xff0000, timestamp=datetime.datetime.utcnow())
embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
await ctx.send(embed=embed)
if milosc_procent >= 100:
await ctx.send(file=discord.File('milosc.png'))
@bot.command()
@commands.check(user_is_me)
async def para(ctx, user1: discord.Member, user2: discord.Member):
how_para = random.randint(1, 101)
if user1 == user2:
await ctx.send("**Nie możesz sprawdzic czy ktoś jest parą z samym sobą :exploding_head:**")
if user1.name == 'Pieseł bot':
await ctx.send("**Nie możesz sprawdzić jak bardzo bot pasuje do bycia z kimś parą. To nie ma sensu !**")
if user2.name == 'Pieseł bot':
await ctx.send("**Nie możesz sprawdzić jak bardzo bot pasuje do bycia z kimś parą. To nie ma sensu !**")
else:
embed=discord.Embed(title="Jak bardzo pasują jako para", description=f"Użytkownik {user1.name} z użytkownikiem {user2.name} byli by zarąbistą parą w {how_para}%", color=0xff0000, timestamp=datetime.datetime.utcnow())
embed.set_author(name="Pieseł bot", icon_url="https://cdn.discordapp.com/avatars/451734929999659008/ed54c994c64b2e0df385822e42c48993.png?size=4096")
embed.set_footer(text=f"Sprawdzono na prośbę {ctx.author.name}")
await ctx.send(embed=embed)
if how_para >= 100:
await ctx.send(file=discord.File('para.gif'))
它應該如下所示:
但它看起來像這樣:
Bot 是為波蘭語用戶准備的,這就是為什么所有消息都是波蘭語的。
如果你想用多個'if'語句創建1個循環,你應該使用'elif'。 'Elif' 是 else if 的縮寫。 如果if
的條件是False
,代碼將檢查條件elif
。 如果if
和elif
的所有條件都為 false,則代碼將執行else
塊。 請參見下面的示例。
user1 = 'mike'
user2 = 'paul'
if user1 == user2:
print('User 1 is equal to user 2')
elif user1 == 'paul':
print('User 1 is Paul')
else:
print('No users recognized')
現在,您的代碼將在每次最后一個if
條件不滿足時執行最后一個if
- else
語句中的else
塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.