Перемешать inline-button

Мне нужно перемешать инлайн-кнопки, я использовал метод random.shuffle, но при меремешивании появляется ошибка:введите сюда описание изображения Сам код:

import telebot
from random import choice, randint, shuffle
from telebot import types

def game(message):
    list_1 = [' + ', ' - ', ' / ', ' * ']
    list_2 = [randint(1, 30) for _ in range(randint(1, 10))]
    a = (str(choice(list_2)))
    b = choice(list_1)
    c = (str(choice(list_2)))
    d = a + b + c
    e = eval(a + b + c)

    def rand():
        for i in range(4):
            ex = (str(choice(list_2))) + choice(list_1) + (str(choice(list_2)))
            return ex

    button = types.InlineKeyboardButton(rand(), callback_data='press_1')
    button2 = types.InlineKeyboardButton(d, callback_data='press_2')
    button3 = types.InlineKeyboardButton(rand(), callback_data='press_3')
    button4 = types.InlineKeyboardButton(rand(), callback_data='press_4')
    rand_button = [button, button2, button3, button4]
    shuffle(rand_button)

    math_bot.send_message(message.from_user.id, f'Какой пример подходит к данному ответу: {round(e, 2)}?',
                          reply_markup=rand_button)

Помогите, пожалуйста, в чём именно ошибка и как её исправить?


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

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

Попробуйте так

button = types.InlineKeyboardButton(rand(), callback_data='press_1')
button2 = types.InlineKeyboardButton(d, callback_data='press_2')
button3 = types.InlineKeyboardButton(rand(), callback_data='press_3')
button4 = types.InlineKeyboardButton(rand(), callback_data='press_4')
rand_button = [button, button2, button3, button4]
shuffle(rand_button)
markup = InlineKeyboardMarkup().add(*rand_button)

math_bot.send_message(message.from_user.id, 
                      f'Какой пример подходит к данному ответу: {round(e, 2)}?',
                      reply_markup=markup)
→ Ссылка