Проблемы с Elif и else — Discord bot

#python #discord #bots #discord.py

#python #Discord #боты #discord.py

Вопрос:

Итак, по сути, у меня есть discord-бот, в котором вы должны угадать число из {min} — {max}, чтобы выиграть цену. Администраторы имеют разрешение на выполнение команды -угадайте {min} {max}. Пользователи Discord угадывают номер в канале, по которому была выполнена эта команда. Почти все работает отлично, за исключением функций elif и else. Они не отображают никаких ошибок в консоли, бот просто игнорирует их. Если они угадают число правильно, бот скажет ({msg.author} угадал число. Число было {выбор}). Я хотел сделать так, чтобы, если они угадают число больше {max}, оно просто отображалось (число слишком большое, попробуйте между {min} — {max}). Вот мой код. Можете ли вы сказать мне, почему мои функции elif и else просто продолжали игнорироваться?

 @bot.command()
async def guess(ctx, min:int, max:int):
    if not ctx.author.id in bot.devs:
        return
    choice = random.randint(min, max)
    print(choice)
    await ctx.send(f'Choose a number between {min} - {max}')

    def check(m):
        return m.content == f"{choice}" and m.channel == ctx.channel
    msg = await bot.wait_for("message", check=check)
    if msg.content == f"{choice}":
        embed=discord.Embed(title=f"**Giveaway Winner**", description=f"{msg.author} has won the giveaway! The answer was {choice}")
        await ctx.send(embed=embed)
    elif msg.content >= f"{max}":
        embed=discord.Embed(title=f"**Number is too big**", description=f"{msg.author} try between {min} - {max}")
        await ctx.send(embed=embed)
    else:
        await ctx.send(f"{msg.author}You guessed wrong. Try again")
 

Ответ №1:

В строке elif msg.content >= f"{max}": вы сравниваете две строки с помощью математического оператора, вместо этого попробуйте elif int(msg.content) >= max:

Комментарии:

1. elif int(msg.content) >= max: