Интерпретатор Python оценивает выражение 4 <5 как Истина.Почему тогда 4 <5 == True возвращает False? - PullRequest
0 голосов
/ 07 февраля 2019

Возился со значениями и концепцией в интерпретаторе и столкнулся с логическим камнем преткновения, так как 4 <5 - Истина, но этот вывод не считается равным == Истина?</p>

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Из Python документация

Формально, если a, b, c,…, y, z - выражения, а op1, op2,…, opN - операторы сравнения, тогдаa op1 b op2 c ... y opN z эквивалентно op1 b и b op2 c и ... y opN z, за исключением того, что каждое выражение оценивается не более одного раза.

Из этого4 < 5 == True равен 4 < 5 and 5 == True (а из приоритет оператора в Python равен (4 < 5) and (5 == True)), где 4 < 5 равен True, но 5 == True равен False.Так что True and False это False.

0 голосов
/ 07 февраля 2019

В Python3: 4 < 5 == True эквивалентно 4 < 5 and 5 == True, что соответствует False, поскольку 5 != True.

Обратите внимание, что < и == имеют одинаковый приоритет.

Документ для справки https://docs.python.org/3/reference/expressions.html#comparisons

0 голосов
/ 07 февраля 2019
>>> 4<5
True
>>> 4<5 == True
False
>>> (4<5) == True
True
>>>

Надеюсь, это очистит ваши сомнения.4<5 == True оценивается как 4<5 and 5 == True, что в целом возвращает False, поскольку 4<5 - True, но 5 == True - False.Это связано с тем, что < и == имеют одинаковый уровень приоритета.

...