нужна помощь по PyTelegramBot

Пытаюсь учить PyTelegramBot и столкнулся с такой проблемой. сделал боту функцию решения примеров с помощью Eval у бота есть заготовленный ответ на не обрабатываемые Слова\символы но после добавления функции с решением примеров бот воспринимает неизвестные ему символы как переменные(насколько я понял) Пишу в чат например "и" в консоле выдает ошибку (name "и" is not dedined)

@bot.message_handler(content_types=['text'])

def get_text_messages(message):

        if message.text == 'Привет':
            bot.send_message(message.from_user.id,("Привет"))

        elif "-" or "+" or "*" or "/" in message.text:
            total = eval(message.text)
            bot.send_message(message.from_user.id,(f"Ответ = {total}"))

        else:
            bot.send_message(message.from_user.id,("Я тебя не понимаю"))

Ответы (2 шт):

Автор решения: vvk

Вы можете сделать так:

@bot.message_handler(content_types=['text'])
    
def get_text_messages(message):
    
    if message.text == 'Привет':
        bot.send_message(message.from_user.id,"Привет")
    
    elif "-" in message.text or "+" in message.text or "*" in message.text or "/" in message.text:
        total = eval(message.text)
        bot.send_message(message.from_user.id,f"Ответ = {total}")
    
    else:
        bot.send_message(message.from_user.id,"Я тебя не понимаю")

Как бы странно не выглядело, но зато вашей ошибки не будет

Данный код будет проверять, есть ли в message.text текст /,*,-,+

Я бы ещё порекомендовал сделать так:

@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    
    if message.text == 'Привет':
        bot.send_message(message.from_user.id,"Привет")
    
    elif "-" in message.text or "+" in message.text or "*" in message.text or "/" in message.text :
        try:
            total = eval(message.text)
            bot.send_message(message.from_user.id,f"Ответ = {total}")
        except SyntaxError:
            bot.send_message(message.from_user.id,"Что?")
    else:
        bot.send_message(message.from_user.id,"Я тебя не понимаю"))

Вот этот код уже будет избегать ошибки, если вы просто введёте "-" ну или другое, то он ответит "Что?" вы можете сделать как хотите

→ Ссылка
Автор решения: biflé

Чуть более элегантным решением будет:

special_symbols = ['+', '-', '/', '/'] 

if message.text == 'Привет':
   
    ... 

else:

    for symbol in special_symbols:

        if symbol in message.text:

            ... 
            #вычисляем выражение
            break

    else:

        ... 
        #другое действие

Если что, else тут не ошибка табуляции - он здесь именно для цикла for. Если break не будет использован, то будет выполнено то, что под else

→ Ссылка