Как проверить является ли строка числом int/float

def check_flight_hours (message: types.Message):
    #если не число то повторный ввод
    if message.text.isdigit():
        night_hours = bot.send_message(message.chat.id, "Введите количество ночных часов:  " )
        bot.register_next_step_handler(night_hours, check_night_hours)

    # проверяем ввел ли число юзер
    else:
        flight_hours = bot.send_message(message.chat.id, "Введите количество летных часов:  ")
        bot.register_next_step_handler(flight_hours, check_flight_hours)

Ответы (2 шт):

Автор решения: oleksandrigo

К примеру так

def is_number(stroka: str):
    try:
        float(stroka)
        return True
    except ValueError:
        return False

def check_flight_hours (message: types.Message):
    # если не число то повторный ввод
    if is_number(message.text):
        night_hours = bot.send_message(message.chat.id, "Введите количество ночных часов:  " )
        bot.register_next_step_handler(night_hours, check_night_hours)

    # проверяем ввел ли число юзер
    else:
        flight_hours = bot.send_message(message.chat.id, "Введите количество летных часов:  ")
        bot.register_next_step_handler(flight_hours, check_flight_hours)
→ Ссылка
Автор решения: AlexSpeaker
import re
print("да" if re.fullmatch(pattern=r"\d+[.]\d+", string="3.14") else "нет")
→ Ссылка