Cтолкнулся с такой проблемой что бот не реагирует на функцию but1_2?

Доброго времени суток, столкнулся с такой проблемой что бот не реагирует на функцию but1_2 ? Бота пишу первый раз и много чего не знаю, поэтому не судите строго)
.......
def func_but(message):
    bot.send_message(message.chat.id, 'Кол-во голов команды ' + kom1 + ' в прошлой игре?')
    bot.register_next_step_handler(message, but1_1)

def but1_1(message):
    global i
    global ch
    i = int(message.text)
   ch = ch + i
    a.insert(0, i)
    markup = types.InlineKeyboardMarkup()
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
    markup.add(key_yes)
    key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
    markup.add(key_no)
    bot.send_message(message.chat.id, 'Хочешь ввести результат ещё одной игры?', reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def but1_2(call):
     if call.data == 'yes':
        bot.register_next_step_handler(call.message, func_but)   #отсюда бот не возвращается на func_but
     elif call.data == 'no':
        bot.register_next_step_handler(call.message, result_1)    #и отсюда бот не идёт на след. функцию result1

def result_1(message):
    # вычисления
    # вывод вычеслений
bot.polling()
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 2
yupiter7575
@yupiter7575
Python программист
По коду мало чего понятно, потому что нет ни подсветки синтаксиса, ни отступов. Могу предположить что вы не добавили декоратор
Ответ написан
KirasiH
@KirasiH
Раньше было лучше
Чё тут думать?

Сначала объявляем функцию
def func():
    #тело функции


а потом вызываемfunc()

В твоём случае
def but1_1(message):
    global i
    global ch
    i = int(message.text)
   ch = ch + i
    a.insert(0, i)
    markup = types.InlineKeyboardMarkup()
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
    markup.add(key_yes)
    key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
    markup.add(key_no)
    bot.send_message(message.chat.id, 'Хочешь ввести результат ещё одной игры?', reply_markup=markup)

def func_but(message):
    bot.send_message(message.chat.id, 'Кол-во голов команды ' + kom1 + ' в прошлой игре?')
    bot.register_next_step_handler(message, but1_1)

@bot.callback_query_handler(func=lambda call: True)
def but1_2(call):
     if call.data == 'yes':
        bot.register_next_step_handler(call.message, func_but)   #отсюда бот не возвращается на func_but
     elif call.data == 'no':
        bot.register_next_step_handler(call.message, result_1)    #и отсюда бот не идёт на след. функцию result1

def result_1(message):
    # вычисления
    # вывод вычеслений
bot.polling()


Дедулю отблагодари!
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ovision Санкт-Петербург
от 100 000 до 300 000 ₽
Сбер Санкт-Петербург
от 100 000 до 100 000 ₽
07 мая 2021, в 19:42
200 руб./за проект
07 мая 2021, в 19:36
2000 руб./за проект
07 мая 2021, в 19:32
20000 руб./за проект