上一章涉及到的操作,即标准的序列操作,均可用于字符串
因为字符串是不可变的,故分片赋值是不合法的
字符串格式化操作符%
>>> format="Hello,%s,%s enough for ya?"
>>> value=('world','Hot')
>>> print format % value
Hello,world,Hot enough for ya?
转化说明符:
https://blog.csdn.net/sszqxt/article/details/78977103
'%10.2f'%pi 表示字段宽10,显示小数点后两位
'%010.2f'%pi 用0补充前面空格
'-%10.2f'%pi 左对齐
'+%10.2f'%pi 右对齐
P48,代码清单3-1
字符串方法
find在一个字符串中找子串,没有时返回-1,可以改变起始点和终止点的参数
>>> number='asdfhjkasdf'
>>> number.find('a',2)
7
join用于连接序列中的元素
>>> symbol='+'
>>> symbol.join('123456')
'1+2+3+4+5+6'
split与join相逆,将字符串分割成序列
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
lower将大写转化成小写,title则与它相反
>>> 'ASDFGGH'.lower()
'asdfggh'
replace
>>> 'you are a dog,he is a dog too'.replace('dog','god')
'you are a god,he is a god too'
translate 与replace差不多,不过只能替换一个单个字符,不过优势是可以进行多个替换
当需要将字符c换成k,把s换成z时,可以用translate,但需要完成一张转换表
>>> from string import maketrans
>>> table = maketrans('cs','kz')###构造转换表
>>> len(table)
256
>>> table[97:123] ###显示小写字母部分,且说明cs已经被kz替换
'abkdefghijklmnopqrztuvwxyz'
>>> 'this is an incredible test'.translate(table) #开始替换字符串
'thiz iz an inkredible tezt'
>>> 'this is an incredible test'.translate(table,' ') #第二个参数用来指定需要删除的字符
'thizizaninkredibletezt'
>>>
strip 返回去除两侧的字符串或者特定字符
>>> ' asd '.strip()
'asd'
>>> ' ***!!!asdf!!!*** '.strip('*!') ##两边是空格时,改方法不起作用
' ***!!!asdf!!!*** '
>>> '***!!!asdf!!!***'.strip('*!')
'asdf'