Развёрнутое пояснение
1️⃣ В Python цепочка a < b < c разворачивается в a < b and b < c. Здесь выражение разворачивается в (1 < 5) and (5 < 10) and (10 == True).
2️⃣ Первые два условия истинны, но 10 == True ложно, так как True числово равен 1, а не 10. Всё выражение возвращает False.
3️⃣ Если бы нужно было сначала вычислить диапазон, а потом сравнить, следует писать (1 < x < 10) == True.
Почему это важно
Непонимание цепочек сравнения приводит к трудноуловимым багам при случайном смешивании проверки диапазонов с булевыми константами. Всегда расставляйте скобки для явного управления порядком.
Post #4685
659
- ✍ 3