Karennn
@Karennn
Познаю просторы IT

Как создать список из картинок и текста и выводить рандомным способом?

Хочу сделать бота типа таро с предсказаниями, но не знаю как сделать типа список текст+картинка, а потом выводить их рандомным способом.

import telebot
from telebot import types # для указание типов
from datetime import datetime
import config
import random


bot = telebot.TeleBot('')

@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn = types.KeyboardButton("")
    markup.add(btn)
    bot.send_message(message.chat.id, text="Привет, {0.first_name}!\nХочешь узнать своё будущее?\nЖми на всевидящее око \nНо будь осторожен,ведь чем меньше знаешь тем крепче спишь❗".format(message.from_user), reply_markup=markup)

@bot.message_handler(content_types=['text', 'photo'])
def func(message):
    if(message.text == ""):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton("")
        markup.add(btn1)
        photo = open('img/1.png', 'rb')

        taro_list = (photo)
        bot.send_photo(message.chat.id, random.choice(taro_list))
        

bot.polling(none_stop=True)


6375148dae23f695148697.png
  • Вопрос задан
  • 408 просмотров
Решения вопроса 2
@KingBotReg
Вот Код
import telebot
from telebot import types  # для указание типов
from datetime import datetime
import config
import random

bot = telebot.TeleBot('')


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn = types.KeyboardButton("")
    markup.add(btn)
    bot.send_message(message.chat.id,
                     text="Привет, {0.first_name}!\nХочешь узнать своё будущее?\nЖми на всевидящее око \nНо будь осторожен,ведь чем меньше знаешь тем крепче спишь❗".format(
                         message.from_user), reply_markup=markup)


@bot.message_handler(content_types=['text', 'photo'])
def func(message):
    if (message.text == ""):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        btn1 = types.KeyboardButton("")
        markup.add(btn1)
        random_text = ['Текст 1','Текст 2','Текст 3','Текст 4'] # Добавляйте текста сколько нужно
        random_img = ['img/1.png', 'img/2.png', 'img/3.png', 'img/4.png'] # Добавляйте картинок сколько нужно
        photo = open(random.choice(random_img), 'rb')
        bot.send_photo(message.chat.id, photo, caption=random.choice(random_text))


bot.polling(none_stop=True)
Ответ написан
Vindicar
@Vindicar
RTFM!
Ну про random.choice() ты знаешь. В чём проблема-то?
Если нужно соответствие картинки и текста, то просто храни текст и картинку одним элементом списка - например, через кортеж.
tarot_list = [
    ('image1.jpg', 'Текст 1'),
    ('image2.jpg', 'Текст 2'),
]

Тогда потом просто делаешь:
image, text = random.choice(tarot_list)
и вперёд!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы