Каковы результаты выражений с == и is для целых чисел, включая малые числа и число за пределами кэша?

== сравнивает числовые значения, is — идентичность объектов. Результат is для равных целых нельзя надёжно предсказывать только по тому, находится ли число в кеше малых int.

Короткий ответ

Что ответить на собеседовании

== сравнивает числовые значения, is — идентичность объектов. Результат is для равных целых нельзя надёжно предсказывать только по тому, находится ли число в кеше малых int.

Подробный разбор

Ответ с пояснениями

== сравнивает числовые значения, is — идентичность объектов. Результат is для равных целых нельзя надёжно предсказывать только по тому, находится ли число в кеше малых int.

CPython переиспользует некоторые целые объекты, а компилятор может объединять одинаковые константы вне этого диапазона. Поэтому x=1000; y=1000 в одном фрагменте и два независимых преобразования строки могут дать разные результаты идентичности при одинаковом ==. Конкретные выражения и среда в вопросе не приведены, поэтому универсальной таблицы True/False нет. Для чисел используйте ==; is применяйте для проверки одиночных объектов, например None.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее