Как проверить является ли строка числом 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 "нет")