python中字符串比较的方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43296326/article/details/83099197

先看一下 ‘=’ ,‘==’ , is, cmp( ) , in 的区别:

1、python中字符串的比较是不能用 = 的,在python中 = 是赋值的意思。a=b的意思是把b的内存地址引用赋值给a。没有开辟新内存。

>>> q = 10
>>> w = q
>>> print(w)
10
>>> 

2、python中的 is 用来判断是否是同一个对象,也就是说is是来判断两个变量的地址引用是否相同,相同的话返回true,表示这两个变量的内存ID是相同的(查内存地址用 id() ),不相同的话返回false。

>>> a=10
>>> b=10
>>> print(a is b)
True
>>> print(id(a))
9339360

3、python中的‘==’ 是用来判断两个对象的值是否相等的,比如判断两个数字的值是否相等。判断的是内存块里存的值。

>>> a=10
>>> b=20
>>> if a == b:
...     print('a和b的值相等')
... 
>>> 
>>> 

python中的cmp() 函数则是相当于判断符,比如‘<’, ‘==’,‘>’ 符号,注意python3版本中是把这个函数去掉了的!!

4、python 中的in关键字其实是实现了python中的遍历协议,in后面跟的对象一般是可迭代对象(不包括生成器;但包括set集合,set不能迭代,但是也能用“in”来查找元素),字符串也是属于可迭代对象的。比如’ab’ in ‘abc’或者’abc’ in 'abc’都是true。

>>> set1 = (1,3,5,7)
>>> print(1 in set1)
True
>>> 
>>> print('ab'  in  'abc')
True
>>> 

需要注意的一点,in 和 not in 是包含与取反, is 和 is not 是判断内存与取反,in 的 not 在前,is 的 not 在后。

5、如果是判断两个字符串大小的话,例如:

>>> print('a'<'b')
True
>>> 

结果为true,在python中两个字符串对比大小的时候是按照ASCII码来比较的。

猜你喜欢

转载自blog.csdn.net/weixin_43296326/article/details/83099197