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