Python 3 Logical не возвращается True как True - PullRequest
0 голосов
/ 01 октября 2018

Пытаясь выучить 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 Ответ

0 голосов
/ 01 октября 2018

Вы должны посмотреть на приоритет оператора .

Давайте рассмотрим это выражение и обработаем каждый оператор в соответствии с их приоритетом:

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
...