#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: