@smoosh

Бот на python отвечает не те переменные?

5f429051d7156719824714.png

код функции:
def send_text(message):
if message.text.lower() == '/menu':
bot.send_message(message.chat.id, 'Что тебе нужно? \n1. Способности персонажей \n2. Топ профилей игроков \n3. Правила игры')

elif message.text.lower() == '2' or 'Топ профилей' or '/profile':
bot.send_message(message.chat.id, 'Топ профилей еще нет.\n\nТоп профилей обновляется каждую неделю')

elif message.text.lower() == '1' or 'Способности Персонажей' or '/stats':
bot.send_message(message.chat.id, 'Напишите имя персонажа')

elif message.text.lower() == '3' or 'Правила игры' or 'rules':
bot.send_message(message.chat.id, 'Правила:')

else:
bot.send_message(message.chat.id, 'Че ты несешь? Не дури дурак дурной.')

Не спрашивайте почему все в одной функции.
  • Вопрос задан
  • 235 просмотров
Решения вопроса 2
@kirillinyakin
elif message.text.lower() == '2' or 'Топ профилей' or '/profile'
Так не пишется так как надо писать
elif message.text.lower() == '2' or message.text.lower() == 'Топ профилей' or message.text.lower() == '/profile'
или можно написать message.text.lower() in [Топ профилей' , '/profile', '2']
И опять же в telebot у декоратора есть именнованный параметр, который отвечает за ввод команд, commands вроде называется
Ответ написан
Комментировать
@UberPool
Python/JS coder
у тебя проблема в or
Перепиши все условия примерно так и всё будет работать

elif message.text.lower() == '2' or message.text.lower() == 'Топ профилей' or message.text.lower() == '/profile':
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы