Распространенная ситуация: проверка того, что переменная находится в заданных пределах. Можно было бы использовать логический оператор and:
if x <= 5 and x > 20:
Однако Python предоставляет нам синтаксическое удобство, которое выглядит более «математичным». Такая запись и короче, и понятнее:
if 5 <= x < 20:
В качестве операторов сравнения могут быть любые из списка в любых сочетаниях:
">", "<", "==", ">=", "<=", "!=", "is" ["not"], ["not"] "in"
Т.е. запись вида a < b > c вполне законна, хоть и трудна для понимания.
Формально, если мы имеем N операций OP1…OPN и N + 1 выражений (a, b … y, z), то запись вида:
a OP1 b OP2 c … y OPN z
Это эквивалентно записи:
a OP1 b and b OP2 c and … and y OPN z
📎 Примеры:
x = 5 print(1 < x < 10) print(x < 10 < x*10 < 100) print(10 > x <= 9) print(5 == x > 4)
a, b, c, d, e, f = 0, 5, 12, 0, 15, 15 print(a <= b < c > d is not e is f)
Специально для канала @pyway.