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

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

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

头像

silencement

2019-09-20 13:20:5511250浏览 · 0收藏 · 0评论

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

示例

使用注意事项

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

a=a.strip()
b=b.strip()
if a==b:
	print "True"

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。

关注

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

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

《年轻朋友的妻子3》| 昊梦梦主人请好好疼爱里面动画第二季| 少女初恋吃小头头视频免费 | 日本大片又大又好看的PPT| 免费看网站在线观看人数在哪直播| 人瘦奶大98G奶的注意事项| 上司趁老公不在到家拜访| 老头握住淑蓉双乳| 成全影视大全免费追剧大全| 黑料吃瓜| 暴躁妹妹CSGO高清| 伦理《少妇的滋味》完整版| 可切换老司机模式浏览器| 男女啪啪做差高潮全过有多动症| 男同网站| 麻花星空传剧原创MV在线| 《有夫之妇的秘书》演员表| 老赵玩小静揉捏胸奶头视频播放| 少女国产免费观看高清电视剧 | 办公室刺激战场3| 环球小姐大赛| 巨乳老师| 电影《满足2》完整版在线观看 | 《黑人性奴2》免费观看| 两人一起做AJ的视频教程| 《完美邻居2》电影在线观看 | 暴躁少女CSGO免费观看| DJ快了又快又骚的POP歌曲| 姨母的绣感中字2| 原声舌吻| 姑父有力挺送小芳的背景故事| 深入无人区短剧免费高清观看| 添女人荫蒂全部过程AV视频| 免费B站看大片真人电视剧| 动浸《便利店少女》免费观看全集| 新婚夜被强伦无删减版| 暴躁少女免费看完整版| 无耻家庭凯伦跟妈妈是哪一集| 国内夫妇交换自拍视频| 快乐8| 为啥女的舒服了要摸自己的胸