Потому что у оператора
or
меньший приоритет, чем у оператора
==
. Сначала выполняется
message.text == 'BLA'
, затем
'BLABLA'
— последнее всегда расценивается как
True
(непустая строка). Можно расставить скобки для лучшего понимания приоритета выполнения:
if (message.text == 'BLA') or 'BLABLA':
Затем строку "BLABLA" можно заменить на
True
:
if (message.text == 'BLA') or True:
Это условное выражение всегда будет равно
True
.
Скорее всего, вы хотели написать:
if message.text == 'BLA' or message.text == 'BLABLA':
Я заменил бы эти два условия кортежем с допустимыми значениями и оператором
in
:
if message.text in ('BLA', 'BLABLA'):