在 Python 中开发 Telegram 机器人的问题
problems with developing Telegram bot in Python
我正在 Python 中为 Telegram 开发一个机器人,对语言的了解为零,但我非常了解 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 个空格)。
Syntax-wise,您可能正在寻找类似下面的内容,但请注意我已经删除了 if message.text == 'Экономика':
位,因为它在函数之外没有意义(没有 message
需要检查!),也没有尝试在 if
块中注册机器人回复处理程序。
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()
报错提示问题的原因是'wrong indentation'.
问题可以通过为所有 mis-aligned 语句添加缩进来解决。
关于Python使用的索引的说明:
Python 不使用 curly-braces 来封闭代码块。它取决于缩进(制表符或 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
我正在 Python 中为 Telegram 开发一个机器人,对语言的了解为零,但我非常了解 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 个空格)。
Syntax-wise,您可能正在寻找类似下面的内容,但请注意我已经删除了 if message.text == 'Экономика':
位,因为它在函数之外没有意义(没有 message
需要检查!),也没有尝试在 if
块中注册机器人回复处理程序。
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()
报错提示问题的原因是'wrong indentation'.
问题可以通过为所有 mis-aligned 语句添加缩进来解决。
关于Python使用的索引的说明:
Python 不使用 curly-braces 来封闭代码块。它取决于缩进(制表符或 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