k = 10/3
l = k <= 3 or True
Значение для l в этом коде возвращает True. Как это возможно? В порядке оценки сравнения выше приоритетов, чем «или, не, и» операторы.Порядок оценки в Python
k = 10/3
l = k <= 3 or True
Значение для l в этом коде возвращает True. Как это возможно? В порядке оценки сравнения выше приоритетов, чем «или, не, и» операторы.Порядок оценки в Python
Они имеют более высокий приоритет, но, то or
operator works by:
Выражение
x or y
первый оцениваетx
; если значениеx
истинно, возвращается его значение; в противном случае вычисляетсяy
и возвращается полученное значение.
С k
является 3.3333333333333335
, выражение k <= 3
является False
, True
будет оцениваться (для себя) и возвращаемых решения l == True
.
Я обманываю это на этот вопрос http://stackoverflow.com/questions/16069517/python-logical-evaluation-order-in-if-statement, в котором существует большой верхний ответ, дополняющий мой короткий. –