@nikto_211

В чем ошибка условия if?

@bot.command()
async def test(ctx, arg):
    if arg == 1:
        channel = bot.get_channel(898531523010121768)
        await channel.send("аргумент1")
    if arg == 2:
        channel = bot.get_channel(898531523010121768)
        await channel.send("аргумент2") 
    else:
        print("Error")

При вводе команды !test 1 and !test 2 все равно выводиться в консоль Else, в чем ошибка
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Ты не указал тип arg, поэтому discord.py оставляет его строкой. А "1" (строка) не равна 1 (числу).
У discord.py есть удобная фишка - если указать в обработчике события параметры и подсказку типа для них, библиотека попытается разобрать введенную пользователем строку на эти параметры, и привести их к нужному типу. Так что напиши что-то типа
async def test(ctx, arg: int):
Ответ написан
Комментировать
Levman5
@Levman5
print(“Hello World!”)
@bot.command()
async def test(ctx, arg):
    if arg == '1':
        channel = bot.get_channel(898531523010121768)
        await channel.send("аргумент1")
    if arg == '2':
        channel = bot.get_channel(898531523010121768)
        await channel.send("аргумент2") 
    else:
        print("Error")


Вам передаётся строка, а не число

И не показывай айди канала
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы