Перемешать 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)