gawwah_looter_7777777
@gawwah_looter_7777777

Как задать несколько значений одной команде?

В скрипте есть текстовое значение BACK, служащее кнопкой ''назад''. Так как обработчик реагирует на конкретный текст, а в скрипте есть две команды с одним текстовым значением, то ответ приходит только по той, которая задана раньше. Как грамотно использовать синтаксис Python, чтобы cоздать несколько отдельных BACK, но не меняя самого текстового значения?

@process.message_handler(content_types=['text'])
def func(message):
    if (message.text == "A"):
     markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        la = types.KeyboardButton('1')
        lo = types.KeyboardButton('2')
        markup.add(la, lo)
        process.send_message(message.chat.id, 'So?:', reply_markup=markup)
    elif (message.text. == '1'):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        good = types.KeyboardButton('Good')
        back = types.KeyboardButton('BACK')
        markup.add(good, back)
        process.send_message(message.chat.id, 'And?:', reply_markup=markup)
    elif (message.text == "BACK"):
     markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        la = types.KeyboardButton('1')
        lo = types.KeyboardButton('2')
        markup.add(la, lo)
        process.send_message(message.chat.id, 'So?:', reply_markup=markup)
    if (message.text == "B"):
     markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        la = types.KeyboardButton('3')
        lo = types.KeyboardButton('4')
        markup.add(la, lo)
       process.send_message(message.chat.id, 'So?:', reply_markup=markup)
    elif (message.text. == '3'):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        good = types.KeyboardButton('Good')
        back = types.KeyboardButton('BACK')
        markup.add(good,back)
        process.send_message(message.chat.id, 'And?:', reply_markup=markup)
    elif (message.text == "BACK"):
     markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        la = types.KeyboardButton('3')
        lo = types.KeyboardButton('4')
        markup.add(la, lo)
        process.send_message(message.chat.id, 'So?:', reply_markup=markup)
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
На мой взгляд, с учетом предложенного условия это возможно, только если в слове BACK некоторые символы сделать другими, например K латинскую заменить на К кириллическую.
Других вменяемых путей получить два внешне одинаковых, но по сути разных текста я не вижу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
cоздать несколько отдельных BACK, но не меняя самого текстового значения?


Освой finite state machines (FSM).
Ответ написан
Ваш ответ на вопрос

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

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