is 和 ==的区别

is 比较的是两个变量的地址,==比较的是两个变量的值,但是在集成的编译器pycharm会有误差的,我这里用的是IDLE测试的,在小整数池[-5,256]内,在运行python代码的时候,它会把小整数放入到内存中,当变量在小整数池范围内,它们会全局共享,也就是地址共享。超出这个范围,就会向内存中重新申请一个新的地址。

>>> a=-5
>>> b=-5
>>> a is b
True
>>> a=-6
>>> b=-6
>>> a is b
False
>>> a=256
>>> b=256
>>> a is b
True
>>> a=257
>>> b=257
>>> a is b
False

>>> a=[1,2,3]
>>> b=[1,2,3]
>>> a is b
False
>>> a==b
True
>>> a[0] is b[0]
True
>>>
赞赏

微信赞赏支付宝赞赏

发表评论