Python 3 Logical не возвращает True как True
В своей попытке выучить Python я писал код из учебников и самостоятельно. Я использую Python 3.
Часть кода, которая делает меня в:
>>>print(not 1 == 1 or 6 == 6 and 9 == 9)
True
Я запустил отдельные части этого кода. Кажется, что оператор OR отрицает себя с двойным True. (не True или True) выводит True вместо False? Разве оператор or не предполагает заключение первого True, а оператор not возвращает True как False?
1 ответ
Вы должны посмотреть на приоритет оператора.
Давайте рассмотрим это выражение и обработаем каждый оператор в соответствии с их приоритетом:
not 1 == 1 or 6 == 6 and 9 == 9
Во-первых, ==
операторы выполняются, поэтому мы получаем:
not True or True and True
Затем not
оператор:
False or True and True
Затем and
оператор:
False or True
Затем or
оператор, выдающий результат, который вы видите:
True