韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python常见问题 > python怎么比较两个字符串是否相等

python怎么比较两个字符串是否相等

头像

silencement

2019-08-22 10:04:4311134浏览 · 0收藏 · 0评论

在python中,判断两个字符串是否相等或一样,可以使用==或者is来判断;判断不一样可以使用 is not。

示例

使用注意事项

1.有时候两个字符串打印出来看着一样,但是判断却是False?如果两个字符串末尾有其他符号,比如回车‘\n’,print的时候无法发现的,所以需要strip:

2.有时候==判断是 True ,is 判断却是 False?

这是因为两个字符串来自不同的内存块,内存地址不一样

id() 函数用于获取对象的内存地址。

(ob1 is ob2) 等价于 (id(ob1) == id(ob2)) id函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象。和is是等价的.

3.还有一种情况是两个对象用is判断是False,用id判断却是True。原理比较复杂,如下:

In [1]: def bar(self, x):
...:     return self.x + y
...: 

In [2]: class Foo(object):
...:     x = 9
...:     def __init__(self ,x):
...:         self.x = x
...:     bar = bar
...:     

In [3]: foo = Foo(5)

In [4]: foo.bar is Foo.bar
Out[4]: False

In [5]: id(foo.bar) == id(Foo.bar)
Out[5]: True

真实情况是当执行.操作符的时候,实际是生成了一个proxy对象,foo.bar is Foo.bar的时候,两个对象顺序生成,放在栈里相比较,由于地址不同肯定是False,但是id(foo.bar) ==id(Foo.bar)的时候就不同了,首先生成foo.bar,然后计算foo.bar的地址,计算完之后foo.bar的地址之后,就没有任何对象指向foo.bar了,所以foo.bar对象就会被释放。然后生成Foo.bar对象,由于foo.bar和Foo.bar所占用的内存大小是一样的,所以又恰好重用了原先foo.bar的内存地址,所以id(foo.bar) == id(Foo.bar)的结果是True。

关注

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

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

傲娇| 蜜桃成熟时李慧珍演的| 小孩把钢筋喂给班主任视频| 黑色黄丝包臀紧身连衣裙| 无人区在线观看免费播放电视剧| 雨后的故事| EXO妈妈MV高清免费观看| 哺乳照比赛| 男生把小困困放到女生困里视频| 鲁鲁影院免费观看电视剧电影| 老公在洗澡我被公干日本| 办公室深深挺进女警小| 美国《性船》无删减| 韩漫免费浸画在线阅读| 《麦子的秘密2》| 李丽珍最经典三颗葡萄| 《性爽2》电影| 伦理《少妇的滋味》完整版| 人野兽马狗猪大全| 国外不堪入目的演唱会| 穿黑色蕾丝透明胸罩说明什么| GTV一同看GTV蓝颜| 《大度》韩版免费| 免费B站看大片真人电视剧 | 真人强汙112分钟| 《粘液》电影免费观看| 老公每天晚上吃奶对身体有伤害吗| 西游记| 高三妈妈用性缓解孩子压力| 真人刺激战场40分钟电视剧| 美国禁忌2在线观看电视剧| 苍老师在线观看免费播放电视剧 | REAL529| 针锋对决小说未删减全文阅读| 妈妈装睡配合孩子阴阳调和| 男牛把小困困放到女生困里视频| 《性巴士1》| 狗配人的大片视频大全| 美女被咬小头头视频大全| 《囚禁空姐》电影免费观看| 二妈的秘密短剧免费版