В чем разница сравнение через is и "==" ?

Спросят с вероятностью 13%



Оператор is используется для проверки идентичности объектов, то есть он проверяет, являются ли два объекта одним и тем же объектом в памяти. С другой стороны, оператор == используется для сравнения значений двух объектов, то есть он проверяет, равны ли значения объектов, не обязательно являются ли они одним и тем же объектом в памяти.



Пример:

a = [1, 2, 3]

b = a # Присваиваем переменной b ссылку на тот же объект, что и у переменной a



print(a is b) # Вывод: True, потому что a и b указывают на один и тот же объект в памяти

print(a == b) # Вывод: True, потому что содержимое a и b одинаковое



c = [1, 2, 3]

print(a is c) # Вывод: False, потому что a и c указывают на разные объекты в памяти

print(a == c) # Вывод: True, потому что содержимое a и c одинаковое




В этом примере переменные a и b ссылаются на один и тот же объект в памяти, поэтому оператор is возвращает True, а содержимое переменных a и b одинаковое, поэтому оператор == также возвращает True. С другой стороны, переменная c ссылается на новый объект, который содержит те же значения, что и a, но не является тем же самым объектом, поэтому оператор is возвращает False, хотя оператор == возвращает True, потому что значения объектов одинаковые.



➡️ Примеры ответов

➡️ Список всех вопросов на Python Developer



🧩 Идущий | 🔐 Собесы | 🔐 Тестовые