Проверка идентичности
Часть раздела 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.
Проверки идентичности особенно полезны, когда вы хотите определить, указывают ли две переменные на один и тот же объект в памяти, а не просто имеют одинаковое значение.
Задание
ЛегкоСоздайте две переменные, 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Проверка идентичности определяет, указывают ли две переменные на один и тот же объект в памяти, а не просто имеют ли они одинаковое значение.
Попробуйте сами
# Напишите код здесьВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter