python字符比较
⑴ 如何用python语言比较两个中文字符串是否相等
在python里,汉字分字节流和unicode字符串:
参考http://www.sqlite.com.cn/MySqlite/11/395.Html
例如“哈”字,假如两个有两个字符str1和str2
str1
=
'\xb9\xfe'
//
这个字节流表示哈字是使用GBK编码的字节流
str2
=
u'\u54c8
//
表示这个字符使用UNICODE-16编码
判断相等:
str1.decode('GBK')
==
str2
统一转换成UNICODE16比较,
如果str2不是UNICODE16编码,也需要做相应的转换。
⑵ python中 字符串是怎么比较大小的
字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同的情况下,就比第二个字符串,以此类推。
举例如下:
1、创建python文件,testcompare.py;
⑶ Python中字符和数字之间是怎么比较大小的
任何两个对象都可以比较
相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了__cmp__(含__gt__,__lt__等)则按照__cmp__来比较,否则按照地址(id)来比较
不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象<其它非数字型的对象;如果两个都是非数字型的对象,则按照类型名的顺序比较,如{} < "abc"(按照"dict" < "str"),而"abc" > [1,2], "abc" < (1,2)。
对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style class < new-style class, new-style class之间按照类型名顺序比较,old-style class之间按照地址进行比较
bool类型是int的子类,且True=1, False=0,比较时按照1-4来比较,如True > -1, True < 4.2, True < "abc"等
上面的回答是针对Python2.x,3.x的有较大的变化,如str和int比较时会抛出异常等。
回到题目,字符和数字的比较符合规则3,所以数字<字符。举个例子,如100和'a'(ord('a')=97),有
100<'a'
⑷ python中 字符串是怎么比较大小的
从第一个字符串开始比较,比较的是字符对应的ASCII码大小,如果两年字符串字符相同,但是一个字符串的字符多,则多的大,比如:
"ABC"小于"ABCD"
"ABD"大于"ABC"
⑸ Python:比较两个字符串是否相等或包含
脚本片段:
str1 = "resultCode": "200";
str2 = "{"total":2,"pages":1,"hint":"","resultCode":"200","error":""}
预期结果应该是返回True,但脚本执行后,结果一直是False,
肉眼观察没有问题,最后发现是str1的冒号后面多了一个空格。