Цикл While не ждет сообщение введенное пользователем
Пользователь должен ввести свой возраст, если вдруг его сообщение будет являться строкой, то бот напишет: "Вводите только число", после бот снова записывает сообщение пользователя. В этом и весь цикл. Проблема только в том, что Питон бесконечно спамит заданное ему сообщение, пока пользователь не введет число, спамит сообщение "Вводите только число", как это исправить ?
import telebot
age = 0
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text.lower() == '/reg':
bot.send_message(message.chat.id, 'Пишите свой возраст')
bot.register_next_step_handler(message, reg_age)
def reg_age(message):
global age
while age == 0:
try:
age = int(message.text)
except Exception:
bot.send_message(message.chat.id, 'Вводите только число')
bot.register_next_step_handler(message, reg_age)
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
def reg_age(message):
if message.text.isdigit():
# здесь у тебя точно в месседж тексте будет число
...
else:
bot.send_message(message.chat.id, 'Вводите только число')
bot.register_next_step_handler(message, reg_age)