字符串/序列的大小比较

a. 字符串是可以比较大小的,我们知道字符串是由单个字母组成的一串字符
比较字符串时根据 字母排序 顺序进行比较的,字母都是Unicode字符,可以比较容易按照顺序比较出大小
例如:
>>> "alpha" < "beta"
True
>>> "alpha" < "alphb"
True
>>> "alpha" < "aapha"
False

我们可以通过两个内建函数 来得到每个字符对应的 Unicode 数值
例如 ord("x") 得到 x对应的 数值
>>> ord("x")
120
我们也可以使用chr(int x) 来得到数值x对应的字符是哪个
例如 chr(80)
>>> chr(80)
'P'

b. 序列也是可以比较大小的,比较的原理是一样的
例如:两个简单的序列可以很容易比较出大小
>>> [1,2] < [2,1]
True
但是序列的情况会比较复杂,例如序列对应位置的元素 类型可能不是简单的数值,导致不能简单比较,这个时候的比较
就类似于多层嵌套,先比较外层的,然后在逐层比较内层的数据,当出现大小差异时,直接返回结果就ok了。
例如:
>>> [2, [1, 4]] < [2, [1, 5]]
True

但是出现对应位置的数据类型不同时,可能就无法比较了
例如:
>>> [2, [1, 4]] < [2, 5]
Traceback (most recent call last):
  File "", line 1, in
    [2, [1, 4]] < [2, 5]
TypeError: '<' not supported between instances of 'list' and 'int'
就会直接报错了,提示 不支持数值类型和列表类型对比
 

你可能感兴趣的:(Python学习,大小比较,字符串,序列)