本章主要介绍字符串的使用,第一章已经部分介绍了字符串以及一些字符串特性和方法.下面对其进行一些补充.
1 基本字符串操作
同第一章,主要包括索引,分片,乘法,判断成员资格,计算长度等.但是需要注意,字符串是不可改变的对象,故而通过切片或者索引对字符串值的修改都是非法的.
2 字符串格式化
字符串格式化通过格式化操作符%实现.%左侧放置一个格式化的字符串,其中会包含若干的格式化说明符,右侧则放置希望格式化的值,可以是数字,字符串,列表等.如果想要一次格式化多个值的话,可以使用元组或者字典.将列表或者其他序列放置在右侧,解释器会将其看成一个值.
Tips:
如果想在格式化字符串中出现%,需要使用%%,这样解释器就不会把%当成是转换说明符了.
下面简介一些格式化说明符:
- %s:代表字符串(使用str函数转换)
- %r:代表字符串(使用repr函数)
- %d,i:带符号的十进制整数
- %f,F:十进制浮点数
- %e:科学计数法表示浮点数(小写)
- %E:科学计数法表示浮点数(大写)
- %o:不带符号的八进制
- %u:不带符号的十进制
- %x,%X:不带符号的十六进制(小大写)
当然在%和格式化说明符之间也可以加入其他的参数,用来说明宽度和精度.如下:
%(0,+,-,space)(宽度说明,整数)(.)(精度说明,整数)(格式说明符)
0代表:0填充.+代表表示出数的符号,不管正号还是负号.-代表左对齐.space代表正数前填充一个空格,用于正负数对齐.
宽度说明可以使用,表示宽度值从元组参数中读出.精度说明也可以使用,功能一样.
3 常用函数
常用函数有find,join,lower,replace,split,strip,translate,maketrans.具体功能不赘述了.需要注意:
join用于将序列的每个元素拼在一起;find可以提供起点和终点索引,从而解释器只会在对应区间内查找;lower用户将字符串小写,同upper;split与join正好相反,同java的split;strip用于讲字符串前后两侧的空格字符删除,同java的trim;translate与replace类似,但只会只处理单个字符,优势是需要同时进行多个替换时,有时效率比replace高.使用translate需要先创建一张转化表,所以可以和maketrans搭配.例如:
>>>a='I am Lvyang'
>>>a.find('am')
>>2
>>a.find('am',1,10) #在固定区间内查找,按照习惯左包含,右不包含
>>>a=['','usr','bin','env']
>>>'/'.join(a) #这种用法很多
>>>'/usr/bin/env'
>>>'/usr/bin/env'.split('/') #与join正好相反
>>>['','usr','bin','env']
>>>a='abcdefg'
>>>table=maketrans('cde','CDE') #构造一个长度为256的对应表,这可比人工的构造方便多了.
>>>a.translate(table)
>>>'abCDEfg'