Не работает конструкция if в if в python с библиотекой telebot

import contextlib
import telebot


bot = telebot.TeleBot('')
@bot.message_handler(content_types=['text'])
def gg(message):
    if message.text == '/start':
      bot.send_message(message.chat.id, 'Привет, я бот '+ 'что-то' +"еще что-то")
    elif message.text == 'группа':
          bot.send_message(message.chat.id, "чет или нечет")
          if message.text == 'чет':
                bot.send_message(message.chat.id, 'нечет')


bot.polling(none_stop=True, interval=0)

не работает if в if . бот не отправляет сообщение "нечет" во втором if elif, все условия соблюдены. в простых кодах с цифрами конструкция работает, но с библиотекой - нет. очень много всего попробовал, ниче не помогает. токен убрал из кода по объективным причинам. заранее спасибо


Ответы (1 шт):

Автор решения: Tehnorobot

Если я правильно понял, то у вас не совсем верна логика алгоритма. То есть:

  1. Приходит сообщение, например, группа
  2. Процесс переходит в конструкцию elif
  3. Отправляется сообщение чёт или нечет
  4. А вот далее, вы получаете сообщение, например, чёт, но вы обрабатываете опять же конструкцию начальную, то есть:
if message.text == '/start':
      bot.send_message(message.chat.id, 'Привет, я бот '+ 'что-то' +"еще что-то")
    elif message.text == 'группа':

Следовательно, у вас ничего не происходит.

Вам нужно добавить ещё одну функцию, которая будет обрабатывать дальнейшие сообщения, либо все условия установить на одном уровне, то есть, к примеру:

if message.text == '/start':
    bot.send_message(message.chat.id, 'Привет, я бот '+ 'что-то' +"еще что-то")
elif message.text == 'группа':
    bot.send_message(message.chat.id, "чет или нечет")
elif message.text == 'чет':
    bot.send_message(message.chat.id, 'нечет')

Но, лучше добавить ещё один обработчик. То есть, написать, например, так:

@bot.message_handler(content_types=['text'])
def gg(message):
    if message.text == '/start':
      bot.send_message(message.chat.id, 'Привет, я бот '+ 'что-то' +"еще что-то")
    elif message.text == 'группа':
          bot.send_message(message.chat.id, "чет или нечет")
          bot.register_next_step_handler(message, chet_or_nechet)

def chet_or_nechet(message):
    if message.text == 'чет':
        bot.send_message(message.chat.id, 'нечет')

bot.polling(none_stop=True, interval=0)
→ Ссылка