用Python开发Telegram机器人的问题

问题描述

我正在使用Python的零知识为Python开发Telegram机器人,但是我非常了解它,因此我尝试遵循它,但是它不起作用。 我正在尝试做出一个逻辑表达式,以便当消息“经济”行“ if message.text =='Economy':”起作用时,但是它给出了我几个小时都无法理解的错误

import telebot

bot = telebot.TeleBot('token')

 

keyboard1 = telebot.types.ReplyKeyboardMarkup()
keyboard1.row('Группа ОБ20-1','Группа ОБ20-2','Группа ОБ20-3','Группа ОБ20-4')


keyboard2 = telebot.types.ReplyKeyboardMarkup()
keyboard2.row('Экономика','Астрология')









@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id,'Привет,выбери свою группу',reply_markup = keyboard1)



    







if message.text == 'Экономика':

  @bot.message_handler(content_types = ['text'])
        def send_text(message):

    if message.text == 'Группа ОБ20-1':
        bot.send_message(message.chat.id,'''9:00 - 10:30: История мировых цивилизаций (Зал: №3/6,Лектор: Прохоров Андрей Валерьевич) 
            \n10:40 - 12:10: История мировых цивилизаций (Зал: №3/6,Лектор: Прохоров Андрей Валерьевич) 
            \n12:20 - 13:50: - 
            \n14:00 - 15:30 - ''')

    elif message.text == 'Группа ОБ20-2':
        bot.send_message(message.chat.id,Лектор: Прохоров Андрей Валерьевич) 
            \n10:40 - 12:10: -  
            \n12:20 - 13:50: Информационные технологии в управлении (Зал: -,Лектор: Журавлев Игорь Владимирович)''')

    elif message.text == 'Группа ОБ20-3':
        bot.send_message(message.chat.id,Лектор: Прохоров Андрей Валерьевич) 
            \n10:40 - 12:10: Логика. Практические занятия (Зал: -,Лектор: Ковылин Юрий Алексеевич)  
            \n12:20 - 13:50: Информационные технологии в управлении. Лаб.Занятия (Зал: -,Лектор: Ващура Ирина Кириллсана)''')

    elif message.text == 'Группа ОБ20-4':
        bot.send_message(message.chat.id,Лектор: Прохоров Андрей Валерьевич) 
            \n10:40 - 12:10: Введение в профессиональную деятельность. Практика (Зал: -,Лектор: Борисенков Алексей Александрович)  
            
            \n12:20 - 13:50: Логика. Практические занятия (Зал: -,Лектор: Борисенков Алексей Александрович)''')

    



bot.polling()

enter image description here

解决方法

错误消息表明问题的原因是由于“错误的缩进”。

可以通过在所有未对齐的语句中添加缩进来解决该问题。

有关Python使用的插入的说明:

Python不使用大括号括起代码块。依靠缩进(一个制表符或4个空格)才能知道代码块的边界。

Python中的缩进就像Swift编程语言的花括号。

例如,假设一个函数是Swift,就像这样:

func my_function(_ s1: String,_ s2: String) -> Bool {
    if (s1 == s2) {
        return true
    }
    return false
}

可以在以下Python行中编写相同的函数:

def my_function (s1,s2):
    
    if (s1 == s2):
        return True
        
    return False
,

您收到一个IndentationError;您的Python缩进语法简直就是怪诞的(混合并匹配0、2、6和4个空格)。

就语法而言,您可能正在寻找类似以下内容的内容,但请注意,我删除了if message.text == 'Экономика':位,因为在函数之外没有意义(没有{ {1}}进行检查!),也不会尝试在message块中注册漫游器回复处理程序。

if