解析Python中的运算比较符is与==

开课吧开课吧锤锤2021-07-07 11:52

    今天,我们经常在工作中使用比较符is或==写法来对两个对象进行判断操作,那么在什么情况下用is,在什么情况下们要用==,所以今天我们就简单地认识一下这两个比较符。

Python中的运算比较符is与==

    比较两个对象的值是否相等(==)

    当我们需要对两个对象的值是否相等进行判断的时候,我们用到的运算符就是==

Python中的运算比较符is与==

a = 100
b = 100
c = 200
a == b
Out[11]: True
c == a
Out[12]: False

    python的缓存机制

    在认识is运算符之前我们先来简单了解一下python的缓存机制

    整数对象

    python中,对于(-5...256)之间的整数,系统已经提前分配好了内存地址,所以在使用到这期间的整数对象时,会直接读取内存池中对应的内存地址,不会创建新的对象。而对于其他不在这期间的整数对象,python会在内存池中为其分配一块小于256k大小的内存,每次的赋值引用都是创建不同的对象,生成不同的内存地址。

Python中的运算比较符is与==

a = 256 
b = 256
id(a) == id(b)
Out[15]: True
a = 257
b = 257
id(a) == id(b)
Out[18]: False

    字符串对象

    单个的ASCII字符或者不间断的单个ASCII字符串的对象创建,python会创建一个内存来储存这个字符串,如果字符串已存在内存池里面,就不会再去创建新的对象,再次赋值别的变量也只是调用的是同一个对象,但如果是间断的ASCII字符串对象创建,那么就会生成不同的对象内存,不会发生已存在内存池就不创建新的内存地址。

Python中的运算比较符is与==

a ='abc'
b = 'abc'
id(a) == id(b)
Out[27]: True
a = 'a bc'
b = 'a bc'
id(a) == id(b)
Out[30]: False

    比较两者是否为同一个对象(is)

    当我们需要比较两个对象是否为同一个对象的时候,用的比较符就是is

    is相当于id(obj)==id(obj)

Python中的运算比较符is与==

a = 1000
b = 1000
a is b
Out[37]: False
id(a) == id(b)
Out[38]: False
a = 1000
b = a
a is b
Out[41]: True
id(a) == id(b)
Out[42]: True

    以上就是开课吧广场小编整理的“解析Python中的运算比较符is与==”一文,更多Python教程相关内容尽在开课吧广场Python教程频道!

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
零基础轻松入门Python