Оператор сравнения is в Python с примерами

В этом уроке вы узнаете об операторе is в 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.

Как работает оператор is в Python

  • В следующем примере определяются две переменные a и b и инициализируются их значениями 100:
a = 100
b = 100

result = a is b
print(result)

Выход:

True

В этом примере нет связи между a и b. Однако когда вы присваиваете b значение 100, диспетчер памяти Python повторно использует существующий объект. Следовательно, и a, и b ссылаются на один и тот же объект:

Оператор is в Python - пример 2

Обратите внимание, что результат этого примера может отличаться в зависимости от того, как реализован диспетчер памяти Python.

  • В следующем примере определяются два списка с одинаковыми элементами и используется оператор is, чтобы проверить, ссылаются ли они на один и тот же объект списка:
ranks = [1, 2, 3]
rates = [1, 2, 3]

result = ranks is rates
print(result)

Выход:

False

В этом примере списки представляют собой изменяемые объекты. Диспетчер памяти Python не использует повторно существующий список, а создает в памяти новый. Таким образом, переменные рангов и ставок ссылаются на разные списки:

Оператор is в Python - пример 3

Сравнение оператора 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
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *