Telegram Inline-button
Подскажите, пожалуйста, как можно сравнить текст(мат. пример) из inline-button с другим текстом(мат. примером)?
У меня просто код проверяет конкретную кнопку а не её значение.
Например:
Ответом на пример является: 124
Варианты примеров:
- 24 + 100
- 62 * 2
- 200 - 76
- 496 / 4
Мой алгоритм считает что верна лишь inline-кнопка "press", хотя все 4-е варианта верны.
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)
markup = InlineKeyboardMarkup().add(*rand_button)
msg = math_bot.send_message(message.from_user.id,
f'Какой пример подходит к данному ответу: {round(e, 2)}?',
reply_markup=markup)
math_bot.register_next_step_handler(msg, get_query, d)
@math_bot.message_handler(commands=['start'])
def start(message):
if message.text == '/start':
math_bot.send_message(message.chat.id, f'Привет, {message.from_user.first_name}!'
'Для начала игры нажми на кнопку "Старт"',
reply_markup=types.InlineKeyboardMarkup().add(
types.InlineKeyboardButton('Старт', callback_data='start')))
@math_bot.callback_query_handler(lambda a: True)
def get_query(message):
global all_answer, right, wrong
if message.data == 'start':
math_bot.answer_callback_query(message.id)
game(message)
elif message.data == 'stop':
math_bot.answer_callback_query(message.id)
math_bot.send_message(message.from_user.id, f'Всего решённых примеров за игру: {all_answer}\n'
f'Правильных ответов: {right}\n'
f'Не правильных: {wrong}.')
if right > wrong:
math_bot.send_sticker(message.from_user.id,
'CAACAgQAAxkBAAIHRWMqJL086rIQ-VXF819dxpwmHz_jAAJMAQACqCEhBmMqtFaxxhbIKQQ')
elif right == wrong:
math_bot.send_sticker(message.from_user.id,
'CAACAgQAAxkBAAIHSmMqJWATiKHbmgk70ZBrGFpnmD7pAAJ4CwAC5F1oUI8K8ajqJQbVKQQ')
elif right < wrong:
math_bot.send_sticker(message.from_user.id,
'CAACAgQAAxkBAAIHRmMqJQKSAjed6h_stQjw6mpTl8vuAAIyAQACqCEhBngubM-0ccZkKQQ')
math_bot.send_message(message.from_user.id, 'Для начала игры нажми на кнопку "Старт"',
reply_markup=types.InlineKeyboardMarkup().add(
types.InlineKeyboardButton('Старт', callback_data='start')))
all_answer = 0
right = 0
wrong = 0
elif message.data == 'press':
math_bot.answer_callback_query(message.id)
math_bot.send_message(message.from_user.id, 'Верно✅')
all_answer += 1
right += 1
game(message)
else:
math_bot.answer_callback_query(message.id)
math_bot.send_message(message.from_user.id, 'Не верно❌')
all_answer += 1
wrong += 1
game(message)