You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegram物理公式助手按钮响应异常:电磁按钮无反应求助

问题描述

我正在开发一款Telegram物理公式助手机器人,目前遇到一个问题:点击「🔍Механика🔍」按钮时机器人能正常响应,但点击「⚡️Электрические и магнитные явления💡」按钮时完全没反应。我是开发新手,试过修改函数名称但没解决问题,相关代码如下:

import telebot
import random
from telebot import types
import requests


token = ("this token")
bot = telebot.TeleBot(token)
@bot.message_handler(commands=["start"])
def start(message: types.Message):
    bot.send_message(
        message.chat.id,
        text="Привет, меня зовут Гена и я твой личный помощник по физике!".format(message.from_user))
    bot.send_message(
        message.chat.id,
        text="Пока что я умею только показывать нужные тебе формулы, но скоро я научусь чему-то новому! Используй команду /formuls !".format(message.from_user),reply_markup=types.ReplyKeyboardRemove())

@bot.message_handler(commands=["formuls"])
def formuls(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("🔍Механика🔍")
    btn2 = types.KeyboardButton("⚡️Электрические и магнитные явления💡")
    markup.add(btn1, btn2)
    bot.send_message(
        message.chat.id,
        text= "Выбирай раздел!".format(message.from_user),reply_markup=markup)

@bot.message_handler(func=lambda msg: msg.text == "🔍Механика🔍")
def message(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("️➡️Прямолинейное равномерное движение➡️")
    btn2 = types.KeyboardButton("➡️Прямолинейное равноускоренное движение➡️")
    btn3 = types.KeyboardButton("⬆️Движение вертикально вверх⬆️")
    btn4 = types.KeyboardButton("🔄Движение по окружности🔄")
    btn5 = types.KeyboardButton("🪶Свободное падение🪶")
    btn6 = types.KeyboardButton("👨🏻‍🎓Законы Ньютона👨🏻‍🎓")
    btn7 = types.KeyboardButton("🌎Закон всемирного тяготения🌎")
    markup.add(btn1,btn2,btn3,btn4,btn5,btn6,btn7)
    bot.send_message(
        message.chat.id,
        text = "Какие формулы именно вас инетерсуют?".format(message.from_user),reply_markup=markup
    )

@bot.message_handler(func=lambda msg: msg.text=="️⚡️Электрические и магнитные явления💡")
def messageElec(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("🔌Электростатика🔌")
    btn2 = types.KeyboardButton("💡Законы постоянного тока💡")
    btn3 = types.KeyboardButton("🔌Электрический ток в постоянных средах🔌")
    btn4 = types.KeyboardButton("🧲Магнетизм🧲")
    btn5 = types.KeyboardButton("💡Электромагнитная индукция💡")
    markup.add(btn1, btn2, btn3, btn4, btn5)
    bot.send_message(
        message.chat.id,
        text = "Какие формулы именно вас инетерсуют?".format(message.from_user),reply_markup=markup
    )

@bot.message_handler(func=lambda msg: msg.text == "️➡️Прямолинейное равномерное движение➡️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/vwJ5pTM")

@bot.message_handler(func=lambda msg: msg.text == "➡️Прямолинейное равноускоренное движение➡️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/datM6mw")

@bot.message_handler(func=lambda msg: msg.text == "⬆️Движение вертикально вверх⬆️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/z8JVbJX")

@bot.message_handler(func=lambda msg: msg.text == "🔄Движение по окружности🔄")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/AGhIy2b")

@bot.message_handler(func=lambda msg: msg.text == "🪶Свободное падение🪶")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/j1GhqCz")

@bot.message_handler(func=lambda msg: msg.text == "👨🏻‍🎓Законы Ньютона👨🏻‍🎓")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/UDmMPVS")

@bot.message_handler(func=lambda msg: msg.text == "🌎Закон всемирного тяготения🌎")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/T3mxRIp")



bot.polling(none_stop=True)
问题原因

电磁学按钮的消息处理器匹配字符串开头多了一个多余的特殊字符(「️」),导致按钮文本和处理器匹配的文本不一致,触发不了对应的处理函数。

修复后的代码

只需要删除匹配字符串开头的多余字符即可:

import telebot
import random
from telebot import types
import requests


token = ("this token")
bot = telebot.TeleBot(token)
@bot.message_handler(commands=["start"])
def start(message: types.Message):
    bot.send_message(
        message.chat.id,
        text="Привет, меня зовут Гена и я твой личный помощник по физике!".format(message.from_user))
    bot.send_message(
        message.chat.id,
        text="Пока что я умею только показывать нужные тебе формулы, но скоро я научусь чему-то новому! Используй команду /formuls !".format(message.from_user),reply_markup=types.ReplyKeyboardRemove())

@bot.message_handler(commands=["formuls"])
def formuls(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("🔍Механика🔍")
    btn2 = types.KeyboardButton("⚡️Электрические и магнитные явления💡")
    markup.add(btn1, btn2)
    bot.send_message(
        message.chat.id,
        text= "Выбирай раздел!".format(message.from_user),reply_markup=markup)

@bot.message_handler(func=lambda msg: msg.text == "🔍Механика🔍")
def message(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("️➡️Прямолинейное равномерное движение➡️")
    btn2 = types.KeyboardButton("➡️Прямолинейное равноускоренное движение➡️")
    btn3 = types.KeyboardButton("⬆️Движение вертикально вверх⬆️")
    btn4 = types.KeyboardButton("🔄Движение по окружности🔄")
    btn5 = types.KeyboardButton("🪶Свободное падение🪶")
    btn6 = types.KeyboardButton("👨🏻‍🎓Законы Ньютона👨🏻‍🎓")
    btn7 = types.KeyboardButton("🌎Закон всемирного тяготения🌎")
    markup.add(btn1,btn2,btn3,btn4,btn5,btn6,btn7)
    bot.send_message(
        message.chat.id,
        text = "Какие формулы именно вас инетерсуют?".format(message.from_user),reply_markup=markup
    )

# 修复:删除了字符串开头的多余字符
@bot.message_handler(func=lambda msg: msg.text=="⚡️Электрические и магнитные явления💡")
def messageElec(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("🔌Электростатика🔌")
    btn2 = types.KeyboardButton("💡Законы постоянного тока💡")
    btn3 = types.KeyboardButton("🔌Электрический ток в постоянных средах🔌")
    btn4 = types.KeyboardButton("🧲Магнетизм🧲")
    btn5 = types.KeyboardButton("💡Электромагнитная индукция💡")
    markup.add(btn1, btn2, btn3, btn4, btn5)
    bot.send_message(
        message.chat.id,
        text = "Какие формулы именно вас инетерсуют?".format(message.from_user),reply_markup=markup
    )

@bot.message_handler(func=lambda msg: msg.text == "️➡️Прямолинейное равномерное движение➡️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/vwJ5pTM")

@bot.message_handler(func=lambda msg: msg.text == "➡️Прямолинейное равноускоренное движение➡️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/datM6mw")

@bot.message_handler(func=lambda msg: msg.text == "⬆️Движение вертикально вверх⬆️")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/z8JVbJX")

@bot.message_handler(func=lambda msg: msg.text == "🔄Движение по окружности🔄")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/AGhIy2b")

@bot.message_handler(func=lambda msg: msg.text == "🪶Свободное падение🪶")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/j1GhqCz")

@bot.message_handler(func=lambda msg: msg.text == "👨🏻‍🎓Законы Ньютона👨🏻‍🎓")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/UDmMPVS")

@bot.message_handler(func=lambda msg: msg.text == "🌎Закон всемирного тяготения🌎")
def get_user_photo(message: types.Message):
    bot.send_photo(message.chat.id, "https://imgur.com/T3mxRIp")



bot.polling(none_stop=True)

内容的提问来源于stack exchange,提问作者The Foxis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:24:51