Python高级编程——2.is和==

来源:互联网 发布:程序员 多个显示器 编辑:程序博客网 时间:2024/05/31 11:03

is:判断的是两个内存地址是否一致

==:判断的是两个变量的值是否一致


以上例子说明了is和==的区别,即a和b的值相等,但是在内存中的地址不一样,所以a==b返回的是True,a is b返回的是False。声明a=1000时,是在堆内存中为a开辟了一个值为1000的空间,a中保存的是这个数值的地址,b=1000,这时在内存中又开辟了一个值为1000的地址,在b中保存了该地址,这个地址与a中必然不同。

但是有一点需要注意的是,在数值在-5~256之间时,a==b和a is b返回的都是True,请看下面的例子:



这是因为在堆内存中开辟了一个小整型缓存区,数值在-5~256之间,这时在声明变量赋值在此数值范围中间时,变量a的引用就指向缓存区-5的位置,在a中保存的是-5的地址,b=a也就是b也保存了a中-5的地址,所以地址和值都是相同的。也是就说数值处于-5~256之间,系统不会再另外开辟空间,而是之间将a或者b的引用指向内存缓存区对应值的位置。

关于以上可用下面图示表明:

字符串也是如此,在此不过多赘述。



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 登陆企业qq服务器超时怎么办 qq登录不上怎么办错误00001 苹果手机白屏进不了界面怎么办 苹果8p手机白屏怎么办 苹果5s无法关机怎么办 三星手机白屏了怎么办 电脑能上qq打不开网页怎么办? 电脑打不开机怎么办黑屏 英雄杀连接不上怎么办 炫舞时登陆器卸下载失败怎么办 电视为什么会出现登录超时怎么办 登录app时提示请求超时怎么办 手机来短信断网怎么办 百度网络不给力怎么办 网络连接不给力怎么办 抖音网络不给力怎么办 玩lol老是掉线怎么办 无线网络连接有防火墙怎么办啊 千牛重新获取enc-k怎么办 为什么说不能获取对方信息怎么办 qq炫舞客户端被修改怎么办 win7玩穿越卡顿怎么办 玩dnf就蓝屏怎么办win7 平板玩fgo闪退怎么办 微信总是说空间不足怎么办 激活卡时遇到服务器错误怎么办 悦平台服务器错误是怎么办 手机银行提示登录服务器错误怎么办 qq漂流瓶封了怎么办 我的世界被冻结怎么办 qq里被屏蔽了怎么办 qq领手游礼包账号存在异常怎么办 笔记本电脑太卡怎么办最有效 华为平板电脑忘记开机密码怎么办 平板电脑忘记开机密码怎么办 平板电脑忘了开机密码怎么办 qq文件已被损坏怎么办 斗地主没痘了怎么办 熹妃q传金币不够用怎么办 苹果手机玩王者卡怎么办 苹果6玩王者荣耀卡怎么办