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码来比较的。