==
==
is used to check if two variables have the same value.
x = 1 y = 1 print(x == y) # True
Comparing the value of two different objects will return True
.
x = [1, 2, 3] y = [1, 2, 3] print(x == y) # True
is
NEVER use is operator to check if two objects have the same value.
Known as the identity operator.
is
is used to check if two variables point to the same object.
is
will return True
only when the objects being compared are the same object, which means they point to the same location in memory.
x = 1 y = 1 print(x is y) # True x = [1, 2, 3] y = x print(x is y) # True
When is
is used to compare two different objects, it will return False
even if the objects have the same value.
x = [1, 2, 3] y = [1, 2, 3] print(x is y) # False
NEVER use is operator to check if two objects have the same value.
print 3 is 2+1 print 300 is 200+100 # output: # True # False
3 is 2+1
will return True
because small ints (-5
to 256
) in Python are cached internally.
Since bigger numbers are not cached, 300 is 200+100
will return False
.