python中比较两个字符串是否相同的方法

  介绍

这篇文章给大家分享的是有关python中比较两个字符串是否相同的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

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

示例

 python中比较两个字符串是否相同的方法

使用注意事项

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

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

2。有时候==判断是真的,是判断却是假的?

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

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

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

 python中比较两个字符串是否相同的方法

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

拷贝[1]:,def 酒吧(自我,,x):   …:,,,,,return  self.x  + y   …:      [2]:拷贝,class  Foo(对象):   …:,,,,,x =9   …:,,,,,def  __init__ (self  x):   …:,,,,,,,,,self.x =, x   …:,,,,,bar =,酒吧   …:,,,,,      [3]:拷贝,foo =, Foo (5)      [4]:拷贝foo.bar  is  Foo.bar   [4]:假      [5]:拷贝,id (foo.bar),==, id (foo.bar)   [5]:,真正的

真实情况是当执行。操作符的时候,实际是生成了一个代理对象,foo。酒吧是Foo.bar的时候,两个对象顺序生成,放在栈里相比较,由于地址不同肯定是假的,但是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)的结果是真的。

感谢各位的阅读!关于python中比较两个字符串是否相同的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!

python中比较两个字符串是否相同的方法