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
Другие вопросы по тегам