Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Приоритеты True и False

Мороженое Сливочное Ученик (90), закрыт 5 лет назад
У чего приоритет стоит выше? У False или True?
К примеру :
a = True
b = False
print (a and b or not a and not b)
Out : False
Почему? Ведь
((a and b) or ((not a) and (not b)))
(True and False) or (False and True)
Т. е. приоритет всегда у False?
Тогда почему :
x1, x2, x3 = False, True, False
not x1 or x2 and x3
Out: True

Т. е. True or x2 and x3
True or True and False
True or False (WTF)
Out: True (WTF)
Как? Объясните пожалуйста....
Лучший ответ
Spoilerok Высший разум (274247) 5 лет назад
Результат правильный. Вы не правильно понимаете, как работает булева математика.
Мороженое СливочноеУченик (90) 5 лет назад
Хм. В моем источнике по которому учусь, такого понятия как "булевая математика" вообще не встречалась. Максимально похожий термин к этому слову, только операнд bool, к которому пока не приближались.
Мороженое Сливочное Ученик (90) не встречалось*
Artemy BastardinovУченик (103) 1 год назад
Нет бы объяснить, почему так. Он поэтому, мать твою, и спрашивает, потому что не разобрался в булевой математике! Вас в школе учителя так же учили? Просто приходишь на урок математики, неправильно отвечаешь, а преподаватель вместо объяснения говорит "ты просто не разбираешься в математике"
Spoilerok Высший разум (274247) Artemy Bastardinov, тут не школа и здесь нет учителей. Объяснение не уложится в один экран смартфона. А с другой стороны, все это описано в сотнях источников, доступных в интернете.
Остальные ответы
Полосатый жираф Алик Искусственный Интеллект (312987) 5 лет назад
Для дураков: приоритет бывает у операций (в том числе и для логических), а не у логических значений!
Мороженое СливочноеУченик (90) 5 лет назад
Ааааааааааааааааааааааааааа, точно! Спасибо
Гусь ПакетированныйГуру (4824) 5 лет назад
И вот такие становятся программистами потом!
Мороженое Сливочное Ученик (90) Ну все же новичками были....
Юрий Попов Просветленный (22436) 5 лет назад
True и False - это всего лишь значения, принимаемые приоритетами, а не операции. Операциями здесь являются not, or и and. Вот у операций есть приоритеты.
Приоритет операторов в Python

В следующей таблице описан приоритет выполнения операторов в Python от наивысшего (выполняется в первую очередь) до наинизшего.

ОператорОписание
**Возведение в степень
~ + -Комплиментарный оператор
* / % //Умножение, деление, деление по модулю, целочисленное деление.
+ -Сложение и вычитание.
>> <<Побитовый сдвиг вправо и побитовый сдвиг влево.
&Бинарный "И".
^ |Бинарный "Исключительное ИЛИ" и бинарный "ИЛИ"
<= < > >=Операторы сравнения
<> == !=Операторы равенства
= %= /= //= -= += *= **=Операторы присваивания
is is notТождественные операторы
in not inОператоры членства
not or andЛогические операторы
Похожие вопросы