#python #if-statement #discord.py #conditional-statements
#python #if-оператор #discord.py #условные операторы
Вопрос:
Я разрабатываю бота с discord.py и у меня есть ошибка, которую я не могу устранить. Я не думаю, что последнее из discord.py но из python (я новичок в этой области)
Моя проблема: я проверяю первое условие в «если». Если это верно, я проверяю другие условия с другим «если». С другой стороны, если первое «if» возвращает false, я проверяю другие условия с помощью «else», а затем «if» в этом.
В моем самом первом «if», если true, все последующие операторы «if» выполняются, даже если они не должны. У меня такая же проблема с «если» в else.
схема:
if ...:
if ...:
...
if ...:
...
else:
if ...:
...
if ...:
...
мой настоящий код:
@commands.command()
async def help(self, ctx, categorie = None)
if categorie == None:
await ctx.send(f"Mon préfixe sur ce serveur: `{pref}`nnSur quelle partie du bot voulez vous de l'aide ?n`utile` | `fun` | `recherches` | `moderation` | `creator`")
def checkMessage(message):
return message.author == ctx.message.author and ctx.message.channel == message.channel
partie = await self.client.wait_for("message", timeout = 20, check = checkMessage)
if partie.content == "moderation" or partie.content == "Moderation":
await ctx.send(embed=modembed)
if partie.content == "utile" or partie.content == "Utile":
await ctx.send(embed=utileembed)
if partie.content == "fun" or partie.content == "Fun":
await ctx.send(embed=funembed)
if partie.content == "recherches" or partie.content == "Recherches":
await ctx.send(embed=recherchesembed)
if partie.content == "creator" or "Creator":
creatorembed.set_thumbnail(url="https://zupimages.net/up/20/52/qpa0.png")
await ctx.send(embed=creatorembed)
else:
if categorie == "moderation" or "Moderation" or "mod":
await ctx.send(embed=modembed)
if categorie == "utile" or "Utile" or "util":
await ctx.send(embed=utileembed)
if categorie == "fun" or "Fun":
await ctx.send(embed=funembed)
if categorie == "recherches" or "recherche" or "Recherches" or "Recherche" or "rech" or "Rech":
await ctx.send(embed=recherchesembed)
if categorie == "creator" or "Creator":
creatorembed.set_thumbnail(url="https://zupimages.net/up/20/52/qpa0.png")
await ctx.send(embed=creatorembed)
Ответ №1:
У вас здесь неправильная логика:
if categorie == "moderation" or "Moderation" or "mod":
Это условие всегда выполняется. Замените его на
if categorie in ("moderation", "Moderation", "mod"):
Также сделайте это для других ваших if
операторов.
Но я рекомендую вам создать свою команду справки, используя HelpCommand
class в discord.py . Это более простой и лучший способ создать команду справки. Вы можете прочитать об этом здесь .