Телеграмм бот на Python выдающий 4 строки с 4 рандомными числами с заданного диапазона
Подскажите, пожалуйста, как написать бота, который выдает что-то вроде: к примеру Первое число: 21.2 Второе число: 22.4 Третье число: 22.1 Четвертое число: 21.8
все это 1 сообщением
Числа должны генерироваться из диапазона, в данном случае, 21-23 с шагом 0.1 Благодарю за ответы
Ответы (2 шт):
Ну, тут сразу 2 вопроса - про бота и про генерацию Случайные числа можно сгенерить, например, random.uniform(0, 20) и округлить до нужного вам числа знаков после запятой.
Бота простого можно сделать по инструкции, приведенной здесь https://tproger.ru/translations/telegram-bot-create-and-deploy/
Тогда останется просто в ответ на /start или другую команду бота выдавать ваш сгенеренный выше random ответ.
Воспользуемся одной из библиотек 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