Задать вопрос
@Mr-CEO
Не стою на месте.

Как правильно создать условие в функции?

Добрый день

У меня возникла проблема при составлении условия в функции.

@dp.message_handler(text='✅ Подтвердить')
async def confirm_h(message: types.Message):
    await message.answer('Пожалуйста, введите имя улицы и номер дома, чтобы курьер смог быстрее доставить вам Ваш '
                         'заказ.') 

    await Confirmation.con.set()


@dp.message_handler(state=Confirmation.con)
async def confirmation_h(message: types.Message, state: FSMContext):
    if message.text:
        await message.answer('Меню:', reply_markup=main_menu)
        await state.finish()
    else:
        await message.answer('Введите корректный адрес, не может начинаться с цифры')


После того как я передаю состояние , я хочу проверить если сообщение str(текст) то работать дальше , но если int(цифра) то отправить сообение и просто ждать повторного. При этой функции не какой ошибки не возникает но if щяс принимает и цифры и текст.
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Собственно, текст сообщение будет всегда будет строкой, даже если в нем будет просто цифра, поэтому стоит проверить, является ли все символы в нем - цифры
Ответ написан
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
message.text.isalpha()
Или
message.text.isdigit()
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы