🔥 Ответы на задачи с собеседований==
и is
в Python? + Ответ на код
Ответ: True False True True
Оператор == сравнивает значения объектов, а оператор is проверяет, ссылаются ли переменные на один и тот же объект в памяти. Так как в Python None - это синглтон-объект, то есть в Python существует лишь один единственный None, то сколько бы мы не создавали переменных с этим значением, они все будут ссылаться на один объект в памяти, потому код "sample_A is sample_B" вернёт True
A = 13 B = 13 print(A == B) print (A is B)
, почему?
Ответ: True True
Потому что Python всегда хранит целые числа от -5 до 256 в памяти. Создавая объект с такими значениями вы будете ссылаться на уже выделенное место в памяти для данного значения. Потому в нашем примере A is B вернёт True. Если А и B оба будут равны 257, то A is B вернёт False. Это было сделано в Python для оптимизации работы языка, чтобы не выделять память на очень часто используемые значения при работе кода.
Автор: Александр Дубейковский, специалист по ML, ex-Yandex
#собеседование