is 和 == 的区别
说明:==是判断两个值是否相等;is 是判断是否指向同一引用。下面是一些示例:
>>> a = 1
>>> b = 1
>>> a == b
True
>>> a is b
True
>>> a = "test"
>>> b = "test"
>>> a is b
True
>>> a == b
True
>>> a = -1
>>> b = -1
>>> a is b
True
>>> a == b
True
>>> a = [1,3,5]
>>> b = [1,3,5]
>>> a is b
False
>>> a == b
True
>>> a = (1,3,5)
>>> b = (1,3,5)
>>> a is b
False
>>> a == b
True
>>> a = {1:'test',2:'test1'}
>>> b =
KeyboardInterrupt
>>> b = {1:'test',2:'test1'}
>>> a is b
False
>>> a == b
True
>>>
总结:变量和字符串由于python内部机制,当定义a=1,b = 1时候,他们均指向同一内存。所以当定义变量和字符串时 a is b 返回的都是true。其他如列表、元组、字典、集合都是返回false