Оператор сравнения is в Python с примерами
В этом уроке вы узнаете об операторе is в Python и различиях между ним и оператором равенства(==).
- Что такое оператор is в Python?
- Сравнение оператора is с оператором == в Python
- Оператор is not в Python
Что такое оператор is в Python?
Оператор Python is сравнивает две переменные и возвращает True, если они ссылаются на один и тот же объект. Если две переменные ссылаются на разные объекты, оператор is возвращает значение False.
Другими словами, оператор is сравнивает идентичность двух переменных и возвращает значение True, если они ссылаются на один и тот же объект.
- Давайте посмотрим на следующий пример:
a = 100 b = a result = a is b print(result)
Выход:
True
Как это работает:
- Сначала определите переменную, которая ссылается на объект int со значением 100.
- Во-вторых, определите еще одну переменную b, которая ссылается на тот же объект, на который ссылается переменная a.
- В-третьих, используйте оператор is, чтобы проверить, ссылаются ли a и b на один и тот же объект, и отобразится результат.
Поскольку и a, и b ссылаются на один и тот же объект, результат будет True.
- В следующем примере определяются две переменные a и b и инициализируются их значениями 100:
a = 100 b = 100 result = a is b print(result)
Выход:
True
В этом примере нет связи между a и b. Однако когда вы присваиваете b значение 100, диспетчер памяти Python повторно использует существующий объект. Следовательно, и a, и b ссылаются на один и тот же объект:
Обратите внимание, что результат этого примера может отличаться в зависимости от того, как реализован диспетчер памяти Python.
- В следующем примере определяются два списка с одинаковыми элементами и используется оператор is, чтобы проверить, ссылаются ли они на один и тот же объект списка:
ranks = [1, 2, 3] rates = [1, 2, 3] result = ranks is rates print(result)
Выход:
False
В этом примере списки представляют собой изменяемые объекты. Диспетчер памяти Python не использует повторно существующий список, а создает в памяти новый. Таким образом, переменные рангов и ставок ссылаются на разные списки:
Сравнение оператора is с оператором == в Python
Оператор равенства(==) сравнивает и проверяет две переменные на равенство и возвращает значение True, если они равны. В противном случае он возвращает False.
В следующем примере используются операторы is и ==:
a = 100 b = a is_identical = a is b is_equal = a == b print(is_identical) print(is_equal)
Выход:
True True
Поскольку a и b ссылаются на один и тот же объект, они оба идентичны и равны.
В следующем примере оба списка содержат одинаковые элементы, поэтому они равны. Однако, поскольку они ссылаются на разные объекты списка в памяти, они не идентичны:
ranks = [1, 2, 3] rates = [1, 2, 3] is_identical = ranks is rates is_equal = ranks == rates print(is_identical) print(is_equal)
Выход:
False True
Оператор is not в Python
Чтобы отрицать оператор is, вы используете оператор not. Оператор is not возвращает значение False, если две переменные ссылаются на один и тот же объект. В противном случае он возвращает True.
В следующем примере оператор is not используется для проверки того, не ссылаются ли две переменные на один и тот же объект списка:
ranks = [1, 2, 3] rates = [1, 2, 3] result = ranks is not rates print(result) # True
Выход:
True