150_Kirill_150
@150_Kirill_150
FX, Python, C# (Unity), Coding, адепт Linux

Как фильтровать текст в PyTelegerambotAPI?

И так есть следующая ситуация. Нужно сделать код, который получал ввод от пользователя. И фильтровал текст. Чтобы он пропускал целые и дробные числа, но не пропускал текст. Сделал следующий код:
chat_id = message.chat.id
text = message.text
if not text.isdigit():
    msg = bot.send_message(chat_id, 'Сумма должна быть числом, попробуйте ещё раз')
    bot.register_next_step_handler(msg, withdraw)
    return
#Ну и дальше идёт код

Но он не пропускает дробное числа и считает их за текст. Как сделать чтобы он тоже пропускал дробные числа?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Вариантов много, на любой вкус и цвет

Regex
import re
if not re.match(r'^\d+($|\.\d+)$'):


Замена разделителя и использование isdigit
if not text.replace('.', '', 1).isdigit():

Через обработку исключений
try:
    float(text)
except ValueError:
    msg = bot.send_message(chat_id, 'Сумма должна быть числом, попробуйте ещё раз')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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