Menu
Coddy logo textTech

Проверка идентичности

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 26 из 78.

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

Базовое использование is:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # Вывод: True
print(a is c)  # Вывод: False

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

Базовое использование is not:

x = 5
y = 5
z = 10

print(x is not y)  # Вывод: False
print(x is not z)  # Вывод: True

Здесь x и y ссылаются на один и тот же объект целого числа (из-за оптимизаций Python для малых целых чисел), поэтому x is not y возвращает False. x и z — это разные объекты, поэтому x is not z возвращает True.

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

challenge icon

Задание

Легко

Создайте две переменные, list1 и list2, где:

  • list1 ссылается на список [1, 2, 3].
  • list2 присваивается тому же объекту.

Используйте оператор is, чтобы проверить, ссылаются ли list1 и list2 на один и тот же объект.
Используйте оператор is not, чтобы проверить, ссылаются ли list1 и list2 на разные объекты.
Выведите результаты проверок.

Шпаргалка

Операторы is и is not проверяют идентичность объектов в памяти, а не просто равенство значений, как ==.

Использование is для проверки того, ссылаются ли переменные на один и тот же объект:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # Вывод: True
print(a is c)  # Вывод: False

Использование is not для проверки того, ссылаются ли переменные на разные объекты:

x = 5
y = 5
z = 10

print(x is not y)  # Вывод: False
print(x is not z)  # Вывод: True

Проверка идентичности определяет, указывают ли две переменные на один и тот же объект в памяти, а не просто имеют ли они одинаковое значение.

Попробуйте сами

# Напишите код здесь
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow