Подробное объяснение
1️⃣ hash(1) == hash(1.0) == hash(True) == 1.
2️⃣ 1 == 1.0 == True → все дубликаты в set → len → 1.
3️⃣ a is b → 1 is 1.0 → разные типы, разные объекты → False.
4️⃣ a is c → 1 is True → False.
5️⃣ Вывод: 1 False False.
Почему это важно
is для чисел — антипаттерн. Работает случайно для малых чисел, ломается в production. Всегда используйте ==.
Post #4741
764
- ✍ 3