Как сделать что-бы пользователь не мог вводить буквы, а только числа?
Пишу бота в телеграм с помощью библиотеки telebot и столкнулся с такой проблемой, что если пользователь введет буквы где от него ожидаются цифры, то вылазит ошибка и бот перестает работать, как запретить пользователю вводить буквы, а разрешить вводить только числа? Вот такая вот ошибка: could not convert string to float: 'буквы'.
Ответы (1 шт):
Автор решения: Андрей Ржавитин
→ Ссылка
def chislo(message):
try: num = int(message.text) #Попытка изменить тип полученного сообщения в Integer
except: bot.send_message(message.chat.id, "Ошибка! Вы ввели не число." #В случае ошибки пишет ошибка
else: bot.send_message(message.chat.id, "Вы ввели число {num}") #Если попытка успешная возвращает в бота число
send = bot.send_message(message.chat.id, "Введите число:") #Сообщение после которого надо зарегестрировать ответ пользователя
bot.register_next_step_handler(send, chislo) #Регистрирует ответ пользователя и передаёт его в функцию Chislo()