Подробное объяснение
1️⃣Под капотом Python булевы значения являются обычными числами: True ведёт себя как 1, а False как 0.
2️⃣Первое действие в скобках: (x + y) превращается в (1 + 0), что даёт 1.
3️⃣Затем происходит умножение: 1 * 5 равно 5.
4️⃣Второе действие в скобках: (x == y) проверяет, равно ли True значению False. Это ложь, поэтому возвращается False, которое в математическом контексте равно 0.
5️⃣Итоговое сложение: 5 + 0 даёт результат 5.
Почему это важно
С одной стороны, это позволяет писать изящные счётчики вроде sum(x > 0 for x in lst). С другой стороны, неочевидное смешивание булевых значений и арифметики может запутать читателя кода, поэтому злоупотреблять этим не стоит.
Post #4702
800
- ✍ 2