@Deduwka

Как правильно прописать проверку ввода чисел на питоне для ТГ бота?

Всем доброго времени суток. Уже долгое время пробую себя в написании кодов на питоне для ТГ. Вот возник вопрос, как сделать проверку вводимого пользователем текста на числа. Я нашел функцию "isdigit" но не как не могу довести ее до ума, в интернете много примеров но ни один не срабатывает. Вот мой код:
def register(message):
    bot.send_message(message.chat.id, "введи числа")
    if message.text.isdigit():
      bot.send_message(message.chat.id, "Данные приняты")
    elif massage.text():
      bot.send_message(message.chat.id, "oops")

Сам код работает но по факту он принимает все сообщения от пользователя, а мне нужно чтоб только числа. Где я допустил ошибку? Заранее благодарен за подсказку.
  • Вопрос задан
  • 1125 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
try:
  v = int(message.text)
  #на случай если тебе подойдёт не всякое число
  if v < 0 or v > 99: 
    raise ValueError()
except ValueError:
  bot.send_message(message.chat.id, "Не число, или недопустимое число.")
else:
  bot.send_message(message.chat.id, f"Ты ввел число {v}")
Ответ написан
Комментировать
shurshur
@shurshur
Сисадмин, просто сисадмин...
А что, по-твоему, эта функция должна делать? Она делает ровно то, что в ней написано: отправляет сообщение "введи числа" и потом тут же проверяет цифры в предыдущем сообщении пользователя.

Гугли примеры register_next_step_handler (если это телебот) или "название_библиотеки finite states machine" в общем случае.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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