Я решил сделать в коде обработчик команд для бота с аргументами, в качестве первой такой команды выбрал возможность выводить случайное число из указанного диапазона чисел, по типу:
/rand 1 500
из чего понятно, что я говорю боту выдать случайное число в диапазоне от 1 до 500, при этом скрипт должен обработать введенные данные и понять, правильный формат команды или нет. если аргументы не являются числами или вовсе не введены, то бот должен ответить, что команда введена не верно.
Скрипт в принципе работает(когда ввожу команду верно), но если я неправильно укажу команду (без аргументов или это не цифры и т.д.),то получается с ошибкой, которая приводит к крашу скрипта…
IndexError: list index out of range
т.е. ругается на строчку с:
x_min = int(message.text.split()[1])
уже мозг сломал, не могу понять в чем дело…
вот сам код полностью:
import telebot import random API_BOT = "бота токен" ADMIN_USER_ID: list[int] = [мой айди в телеге] THIS_BOT = telebot.TeleBot(API_BOT) @THIS_BOT.message_handler(commands=['start']) def cmd_start(message): THIS_BOT.send_message(message.chat.id, f'<b>Привет, {message.from_user.first_name}! Я Ваш интерактивный помошник.</b>', parse_mode='html') @THIS_BOT.message_handler(commands=['rand']) def cmd_rand(message): x_min = int(message.text.split()[1]) x_max = int(message.text.split()[2]) if x_min < x_max: result = random.randint(x_min, x_max) THIS_BOT.send_message(message.chat.id, f"Случайное число: {result} ", parse_mode='html') else: THIS_BOT.send_message(message.chat.id, f"Ошибка! Неправильно указаны аргументы команды. \n Вы написали " f"следующее: /rand {x_min} {x_max}", parse_mode='html') @THIS_BOT.message_handler() def msg(message): if (message.text == "debug_info") and (message.from_user.id in ADMIN_USER_ID) is True: THIS_BOT.send_message(message.chat.id, message, parse_mode='html') if __name__ == "__main__": THIS_BOT.polling(none_stop=True)