Aiogram не правильно обрабатывает сообщение от пользователя
Начал изучать Aiogram, хочу сделать очень простого бота, который генерил бы 2 числа a,b от -100 до 100 и присылал бы a*b, от пользователя ожидал бы правильный ответ.
a = random.randrange(-100, 100)
b = random.randrange(-100, 100)
@dp.message_handler(commands=['math_task'])
async def math_task(message:types.Message):
await bot.send_message(message.from_user.id,
text='Начинаем')
await message.answer(text=('Перемножить',a,b))
@dp.message_handler()
async def math_task(message:types.Message):
c = a * b
if message.text==c:
await message.answer("YES")
else:
await message.answer('NO')
бот реагирует на любой ответ пользователя NO. пробовал message.text==c заменить message.text in c. В чем может быть ошибка?
Ответы (1 шт):
Автор решения: Mango
→ Ссылка
надеюсь ответ устроит ( в данном случае это бесконечный цикл)
a = random.randrange(-100, 100)
b = random.randrange(-100, 100)
@dp.message_handler(commands=['math_task'])
async def math_task(message:types.Message):
await bot.send_message(message.from_user.id,text='Начинаем')
await message.answer(text=f'Перемножить {a}, {b}')
@dp.message_handler()
async def math_task(message:types.Message):
global a,b
c = a * b
if str(message.text)==str(c):
await message.answer("Правильно")
a = random.randrange(-100, 100)
b = random.randrange(-100, 100)
await message.answer(text=f'Перемножить {a}, {b}')
math_task
else:
await message.answer('Неправильно, пробуй еще.')
executor.start_polling(dp)
но можно запихнуть в цикл for или while (например)
for a in range(5): #или while something:
@dp.message_handler()
async def math_task(message: types.Message):
global a, b
c = a * b
if str(message.text) == str(c):
await message.answer("Правильно")
a = random.randrange(-100, 100)
b = random.randrange(-100, 100)
await message.answer(text=f'Перемножить {a}, {b}')
else:
await message.answer('Неправильно, пробуй еще.')