python中 字符串是怎么比较大小的

Python08

python中 字符串是怎么比较大小的,第1张

从第一个字符串开始比较,比较的是字符对应的ASCII码大小,如果两年字符串字符相同,但是一个字符串的字符多,则多的大,比如:

"ABC"小于"ABCD"

"ABD"大于"ABC"

任何两个对象都可以比较

相同类型的对象(实例),如果是数字型(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'