Телеграмм бот на Python выдающий 4 строки с 4 рандомными числами с заданного диапазона

Подскажите, пожалуйста, как написать бота, который выдает что-то вроде: к примеру Первое число: 21.2 Второе число: 22.4 Третье число: 22.1 Четвертое число: 21.8

все это 1 сообщением

Числа должны генерироваться из диапазона, в данном случае, 21-23 с шагом 0.1 Благодарю за ответы


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

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

Ну, тут сразу 2 вопроса - про бота и про генерацию Случайные числа можно сгенерить, например, random.uniform(0, 20) и округлить до нужного вам числа знаков после запятой.

Бота простого можно сделать по инструкции, приведенной здесь https://tproger.ru/translations/telegram-bot-create-and-deploy/

Тогда останется просто в ответ на /start или другую команду бота выдавать ваш сгенеренный выше random ответ.

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

Воспользуемся одной из библиотек API Telegram для Python - pyTelegramBotAPI и сразу посмотрим пример.

Возьмём пример за основу, только изменим метод reply_to на send_message.

Для генерации случайных чисел возьмём данный ответ

В итоге получим следующий код:

from random import randrange

import telebot


bot = telebot.TeleBot(bot_token)

f = 1 / 0.1

print(bot.get_me())


def generate():
    a = []
    for _ in range(0, 4):
        a.append(str(randrange(21 * f, 23 * f, 0.1 * f) / f))

    return a


@bot.message_handler(commands=['start'])
def send_welcome(message):
    number = generate()
    bot.send_message(message.chat.id, f'Первое число: {number[0]}\nВторое число: {number[1]}\n'
                                      f'Третье число: {number[2]}\nЧетвертое число: {number[3]}')


bot.polling()

После отправки боту команды /start в ответном сообщении получим что-то вроде этого:

Первое число: 21.9 Второе число: 21.3 Третье число: 22.1 Четвертое число: 21.7

→ Ссылка