Не узел!
Приоритет оператора влияет на то, как вычисляется выражение, и == operator имеет более высокий приоритет, чем not operator в Python.
Таким образом, not x == y эквивалентноnot (x == y), что эквивалентно not (True == False) окончательной оценке True.
Но x == not y вызывает SyntaxError вопрос, потому что его можно считать эквивалентным, (x == not) y а не x == (not y) тем, что вы могли ожидать на первый взгляд.
Анализатор ожидал, что not токен будет частью not in оператора (потому что оба оператора == и not in имеют одинаковый приоритет), но после того, как не смог найти in токен, следующий за not токеном, он выдает SyntaxError.
Разъяснивший Python
Post #4679
319
