@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, 'Че ты несешь? Не дури дурак дурной.')

Не спрашивайте почему все в одной функции.
  • Вопрос задан
  • 64 просмотра
Решения вопроса 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
у тебя проблема в or
Перепиши все условия примерно так и всё будет работать

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

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

Войти через центр авторизации
Похожие вопросы
от 150 000 до 200 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 250 000 ₽
28 сент. 2020, в 00:10
15000 руб./за проект
27 сент. 2020, в 21:54
15000 руб./за проект