Генератор случайных чисел в телеграм боте на python

Всем привет! Я новичок в python'е, пишу чат-бота телеграм на pyTelegramBotAPI, он отвечает на разные сообщения, но я хотел бы добавить такую фичу, как генерацию случайных чисел. Может кто то скинуть код, от создания кнопки при нажатии которой бот будет задавать вопрос от какого до какого числа будет генерировать число, до самого скрипта генерации. Помогите пожалуйста)


Ответы (2 шт):

Автор решения: fokioff

Вы можете использовать метод random.randint:

import random

random.randint(1, 10)

Где 1 это число от которого будет генерироваться, а 10 до какого будет генерироваться.

Если вас интересует что-бы пользователь сам вводил эти значения вы можете использовать register_next_step_handler

→ Ссылка
Автор решения: pix8bit

Вот весь рабочий скрипт, готовый для изучения.

import telebot
import random
from telebot import types  # для создания кнопок

bot = telebot.TeleBot('TOKEN')  # Token бота берётся из BotFather


# Создание кнопки после команды Start
@bot.message_handler(commands=['start'])
def welcome(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    random_sender = types.KeyboardButton("Скинь Рандомное число")
    markup.add(random_sender)
    bot.send_message(message.chat.id, '<b>Генератор Рандома Активирован</b> (бип-пуп-пиип)', parse_mode='html',
                     reply_markup=markup)


# Отслеживание нажатий кнопки
@bot.message_handler(content_types=['text'])


def first_number_step(message):
    if message.text == 'Скинь Рандомное число':
        msg = bot.send_message(message.chat.id, 'Введите начало диапазона')
        bot.register_next_step_handler(msg, second_number_step)             # переход на функцию second_number_step
    else:
        bot.send_message(message.chat.id, 'Такой команды нет')


# Получение первого числа диапазона
def second_number_step(message):
    global NUM_first
    NUM_first = int(message.text)
    msg = bot.send_message(message.chat.id, 'Введите конец диапазона')
    bot.register_next_step_handler(msg, result_number_step)                 # переход на функцию result_number_step


# Получение второго числа диапазона
def result_number_step(message):
    global NUM_second
    NUM_second = int(message.text)
    result(message)                                                          # Вызов функции result(message)


# Вывод результата (рандом)
def result(message):
    bot.send_message(message.chat.id, 'Случайное число:  ' + str(random.randint(NUM_first, NUM_second)))


#Run
bot.polling(none_stop=True)                                                   # Это мы пишем для того, чтобы бот
                                                                              # при работе кода работал постоянно

Рекомендую прочитать про то, как работает register_next_step_handler

→ Ссылка