Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中开发电报机器人的问题_Python_Python 3.x_Python Telegram Bot - Fatal编程技术网

在Python中开发电报机器人的问题

在Python中开发电报机器人的问题,python,python-3.x,python-telegram-bot,Python,Python 3.x,Python Telegram Bot,我正在用Python开发一个电报机器人,对该语言一无所知,但我对swift非常了解,我试着遵循它,但它不起作用。 我试图建立一个逻辑表达式,这样当消息“Economy”时,“if message.text==‘Economy’:”行可以工作,但它给出了一个我几个小时都无法理解的错误 import telebot bot = telebot.TeleBot('token') keyboard1 = telebot.types.ReplyKeyboardMarkup() keyboard1

我正在用Python开发一个电报机器人,对该语言一无所知,但我对swift非常了解,我试着遵循它,但它不起作用。 我试图建立一个逻辑表达式,这样当消息“Economy”时,“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, '''9:00 - 10:30: История мировых цивилизаций (Зал: №3/6, Лектор: Прохоров Андрей Валерьевич) 
            \n10:40 - 12:10: -  
            \n12:20 - 13:50: Информационные технологии в управлении (Зал: -, Лектор: Журавлев Игорь Владимирович)''')

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

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

    



bot.polling()

您得到一个缩进错误;您的Python缩进语法非常不稳定(混合并匹配0、2、6和4个空格)

就语法而言,您可能正在寻找以下内容,但请注意,我已经删除了
if message.text=='ªªªªª¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥位,因为它不在函数之外(没有要检查的if
块中注册bot应答处理程序也不起作用

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
    )


@bot.message_handler(content_types=["text"])
def send_text(message):
    if message.text == "Группа ОБ20-1":
        bot.send_message(message.chat.id, """1...""")
    elif message.text == "Группа ОБ20-2":
        bot.send_message(message.chat.id, """2...""")
    elif message.text == "Группа ОБ20-3":
        bot.send_message(message.chat.id, """3...""")
    elif message.text == "Группа ОБ20-4":
        bot.send_message(message.chat.id, """4...""")


bot.polling()

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

这个问题可以通过向所有错误对齐的语句添加缩进来解决

关于Python使用索引的注意事项:

func my_function(_ s1: String, _ s2: String) -> Bool {
    if (s1 == s2) {
        return true
    }
    return false
}
def my_function (s1, s2):
    
    if (s1 == s2):
        return True
        
    return False
Python不使用大括号来封装代码块。它依赖于缩进(一个制表符或4个空格)来了解代码块的边界

Python中的缩进类似于Swift编程语言中的大括号

例如,假设函数是Swift,如下所示:

func my_function(_ s1: String, _ s2: String) -> Bool {
    if (s1 == s2) {
        return true
    }
    return false
}
def my_function (s1, s2):
    
    if (s1 == s2):
        return True
        
    return False
同样的函数也可以用Python编写:

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

谢谢你的帮助!