Помогите с Telegram BOT сделать цикл на Python
Есть часть кода для бота Telegram. Бот задает вопрос: Введите страницу. (При этом всего страниц 40) Помогите написать правильно цикл для проверки сообщения от пользователя, который отвечает боту на этот вопрос. Надо чтобы бот ждал от пользователя пока он введёт число от 1 до 40, если он вводит неправильно, то бот сообщает ему об этом и снова ждёт, когда человек введёт правильно страницу. N - глобальная переменная, обозначающая номер страницы.
@bot.message_handler(content_types=['text'])
def get_Info(message):
global N;
while N == 0:
#проверяем что номер страницы изменился
try:
N = int(message.text) #проверяем, что номер страницы введен корректно
bot.send_message(message.chat.id, text='✅Замечательно!? Вы выбрали страницу: '+str(N)+' ?');
except Exception:
bot.send_message(message.chat.id, 'Цифрами, пожалуйста')
break
Ответы (1 шт):
Автор решения: D. Violet
→ Ссылка
def request_page(message):
send = bot.send_message(message.chat.id, 'Введите страницу')
bot.register_next_step_handler(send, verify_page)
def verify_page(message):
if int(message.text.isdigit()): # проверяем что введённое сообщение от пользователя является цифрой
if int(message.text) in range(1, 41):
bot.send_message(message.chat.id, 'Вы выбрали страницу {}'.format(message.text))
else:
bot.send_message(message.chat.id, 'Укажите верный номер страницы')
request_page(message)
else:
bot.send_message(message.chat.id, 'Номер страницы должен быть числом')
request_page(message)