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)
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
На мой взгляд, с учетом предложенного условия это возможно, только если в слове BACK некоторые символы сделать другими, например K латинскую заменить на К кириллическую.
Других вменяемых путей получить два внешне одинаковых, но по сути разных текста я не вижу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
cоздать несколько отдельных BACK, но не меняя самого текстового значения?


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

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект