is 与 == 区别 :

is 用于判断两个变量引用对象是否为同一个,就是所引用的对象的内存地址是否一致 == 用于判断引用变量的值是否相等。只判断值和数据类型

id():在内存中存储的位置 type:变量的类型 value:变量的值 ==:type value is:type value id

a = '1' b = a a is b True

a '1'

b '1'

id(a) 140325344997424

id(b) 140325344997424

b [1, 2, 3]

a [1, 2, 3] # a 和 b 都是一个列表 并且元素都想共同

type(a) <type 'list'>

type(b) <type 'list'> # 数据类型相同

id(a) 140332022852640

id(b) 140332022967184 # 但是所指向的内存地址不同

a is b # 导致a is b 返回的是 False False

a == b # 但是两个变量的数值以及数据类型一致 此时a ==b 返回True True