2 AnswersNew Answer
In both Python 2 and 3, "is" checks whether the identities of its two arguments are the same. The difference is in the "/" operator. In Python 2, "/" uses floor division if both its arguments are integers, and thus the result is always an integer. But in Python 3, "/" is true division, and result is always a float. So y=8/2=4 is an integer in Python 2, but in Python 3, it's the float 4.0. But x is 4 in both versions. So in Python 2, "x is y" means "4 is 4" (True). But in Python 3, it means "4 is 4.0" (False).
In python3 there are some big changes.so don't worry about this what's going on in python2.focus only on python3. i think in python2 if two variable has same magnitude or value then they point same object that's why it give you true but in python3 although two variable has same value but they always point diffrent objects not same why you got false in python3.