国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Python中==和is有什么区别

Python中==和is有什么区别

头像

爱喝马黛茶的安东尼

2019-07-05 13:12:322684浏览 · 0收藏 · 0评论

== 是比较两个对象的内容是否相等,即两个对象的“值”是否相等,不管两者在内存中的引用地址是否一样。

is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同。即is比较两个条件:1.内容相同。2.内存中地址相同。

a = 10000
b = 10000
print(a == b)  # True
print(a is b)  # True
print(id(a))  # 4461408208
print(id(b))  # 4461408208

a = "hello world"
b = "hello world"
print(a == b)  # True
print(a is b)  # True
print(id(a))  # 4461408208
print(id(b))  # 4461408208

a = [11,22,33]
b = [11,22,33]
print(a == b)  # True
print(a is b)  # False
print(id(a))  # 4409720712
print(id(b))  # 4409720776

在上面的代码中,我们分别定义了 a 和 b 两个变量,通过输出结果可以发现当变量为字符串或数字时, is 和 == 的输出结果是一样的,当为列表时 is 和 == 结果不一样,通过打印两个变量的 id 值可以看出两个 id 值不一样,这是由于当我们创建列表 a 和 b 时,是分别开辟了两块内存来分别存储这两个变量,从表象上来看结果是一样的,但两个变量所指向的内存地址不一样,我们将上面的代码改为如下:

1 a = [11,22,33]
2 b = a
3 print(a == b)  # True
4 print(a is b)  # True
5 print(id(a))  # 4535062408
6 print(id(b))  # 4535062408

在上面的代码中,我们并没有直接给变量 b 赋值,而是让 b=a,这样的话 b 和 a 就指向了同一块内存,所以 a is b 就为 True 了。

上面的代码我是在 PyCharm 编辑器中实现的,但是在终端命令行实现的话结果却是不一样的,如下:

 1 >>> a = 10000
 2 >>> b = 10000
 3 >>> a == b
 4 True
 5 >>> a is b
 6 False
 7 >>> id(a)
 8 4360555120
 9 >>> id(b)
10 4360555216

相关推荐:《Python视频教程

当我们将 a 和 b 的值变小时,如下:

>>> a = 100
>>> b = 100
>>> a == b
True
>>> a is b
True
>>> id(a)
4357367984
>>> id(b)
4357367984

造成上面的原因是因为python对小整数在内存中直接创建了一份,不会回收,所有创建的小整数变量直接从对象池中引用他即可。但是注意Python仅仅对比较小的整数对象进行缓存(范围为范围[-5, 256])缓存起来,而并非是所有整数对象。也就说只有在这个[-5,256]范围内创建的变量值使用is比较时候才会成立。

在 PyCharm 中,当值超过 256 时 is 和 == 的输出结果仍是一样,这是因为解释器也做了一部分优化,对于数字和字符串这类变量都进行了缓存。

我们再来看一下在终端命令行中当变量为字符串时:

 1 >>> a = "hello world"
 2 >>> b = "hello world"
 3 >>> a == b
 4 True
 5 >>> a is b
 6 False
 7 >>> id(a)
 8 4359747248
 9 >>> id(b)
10 4361247408
 1 >>> a = "hello"
 2 >>> b = "hello"
 3 >>> a == b
 4 True
 5 >>> a is b
 6 True
 7 >>> id(a)
 8 4361199040
 9 >>> id(b)
10 4361199040

通过输出结果可以看出,在命令行中当变量为简单字符串时输出结果一致,否则输出结果不一致,这是由于 Python 对简单字符串对象也进行了缓存,这样做的意义是可以优化代码的运行速度,减少内存消耗。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

美女和帅哥一起努力生产豆浆| 按摩店的待遇5HD| 一边吃奶一边添P好爽视频| 女子赤身跳钢管舞视频| 八戒八戒电影在线看免费观看8 | 《囚禁空姐》电影免费观看| 《少妇精油按摩》无码| 《炸裂吧!巨棒》免费阅读漫画| 《女仆教育》动漫第一季| 丁香五月色情久久久久| 麻花传MV在线看免费观看电视剧| 一线产区和二线产区的标准图 | 老师趴讲台把腿张开让学生背单词 | 漂亮的女邻居5》HD| 《湿点》未增减板相似| 我兄弟的妈妈免费观看电视剧| 成全在线观看免费完整的| 姨母的绣感中字完整版| 菠萝蜜在线观看免费播放电视剧| 老翁玩嫩媳| 第1章饱满的乳峰喷奶水动漫| 妈妈让我戴上避孕套的下一句是啥| 半插和全插有什么区别| 小莹的性荡生活第15章| 女性俱乐部LOGO| 《请好好疼爱里面》免费观看| 老公太长了每次都扎的肚子疼| 美国的忌讳-5| 《熟妇的荡欲》HD中字| 双乳被四个男人吃奶动态图 | 婆媳双飞杨钰莹阅读| 黑瓜网每日大赛最新一期免费观看| 二人世界一男一女| 欧美XBOX与IPHONE性能.| 美国伦理小樱桃1| 年轻的母亲4| 摸的下身已洪水泛滥怎么办| 老人玩小处雌女视频的意义| WWW.17C嫩嫩草色视频蜜桃| 十九岁暴躁少女CSGO免费观看| 欧美大片PPT免费PPT