Ответы пользователя по тегу Ветвление
  • Не работает ветвление if-elif-else в python, игнорирует условия. Как исправить?

    @Scream034
    Новичок в разработке
    У тебя неправильная конструкция if-elif-else, не надо использовать такое
    if text == 'привет' or 'привет)' or 'здравствуйте': pass
    .
    Вот верно
    if text == 'привет' or text == 'привет)' or text == 'здравствуйте': pass

    Вот код исправный:
    import telebot
    
    TOKEN = "TOKEN"
    bot = telebot.TeleBot(TOKEN)
    
    @bot.message_handler(commands=['start', 'go'])
    def start_handler(message):
        bot.send_message(message.chat.id, 'Привет, напиши тривиальное название химического вещества, а я посмотрю, что о нём знаю.')
    
    @bot.message_handler(content_types=['text'])
    def text_handler(message):
        text = message.text.lower()
        
        # from re import sub
        # text = sub(r'[^\w\s]', '', text) # Можешь использовать для удаления всех не нужных знаков по типу - : ; ! , ? . - _ и т.д
        
        chat_id = message.chat.id
        if text == 'привет' or text == 'привет)' or text == 'здравствуй' or text == 'здравствуйте' or text == 'здорово' or text == 'здравствуй)' or text == 'здравствуйте)' or text == 'ghbdtn' or text == 'plhfdcndeqnt' or text == 'plhfdcndeq':
            bot.send_message(chat_id, 'Привет, меня зовут Врунишка - главный знаток химических названий... А если серьёзно, то я всего-навсего обычный бот, который любит химию.\n\n'
                                      'Буду рад поделиться своими знаниями. Просто напиши название вещества, а я посмотрю в своей химической базе данных.')
        elif text == 'как дела?':
            bot.send_message(chat_id, 'Хорошо, а у тебя?')
        elif text == 'бензол' or text == 'benzene' or text == 'бензен' or text == 'фениловый водород' or text == 'фенан' or text == 'фениленгидрид' or text == 'циклогекса-1,3,5-триен' or text == '1,3,5-циклогексатриен' or text == '[6]-аннулен' or text == '[6]аннулен':
            bot.send_message(chat_id, 'Название ИЮПАК: бензол, циклогекса-1,3,5-триен\n'
                                      'Прочие названия: бензен, фениловый водород, [6]-аннулен\n'
                                      'На английском: benzene, phenane, phenylene hydride, 1,3,5-Cyclohexatriene, [6]Annulene\n\n'
                                      'Брутто-формула: C\u2086H\u2086 \n'
                                      'Молярная масса: 78,11 г/моль')
        else:
            bot.send_message(chat_id, 'Простите, я ваc не понял :(')
    bot.polling(none_stop=True, interval=0)
    Ответ написан
    2 комментария