一、字符串字面量
- 单引号:'spa"m'
- 双引号:"spa'm"
- 三引号:'''...spam...''',"""...spam..."""
- 转义序列:"s\tp\na\om"
- 原始字符串:r"C:\new\test.spm"
注意:
- 转义序列让我们能够在字符串中嵌入不容易通过键盘输入的字符。字符\以及字符串字面量中在它后边的一个或者多个字符,在生成的字符串对象中会被单个字符所替代,这个字符拥有通过转义序列定义的二进制值。例如:s='a\nb\tc',这里有一个五个字符的字符串,其中嵌入了一个换行符和一个制表符。
- python的字符串被划分为不可变序列意味着这些字符串所包含的字符存在从左到右的位置顺序,并且不可以在原位置修改。例如:s='spam',不可用s[0]='t'。
二、序列操作
- 正向索引和反向索引
>>>s = 'Spam'
>>>s[0]
'S'
>>>s[1]
'p'
>>>s[-1]
'm'
>>>s[-2]
'a'
- 分片
>>>s = 'Spam'
>>>s[1:3]
'pa'
>>>s[:-1] # 负偏移量
'Spa'
>>>s[:] # 复制整个字符串
'Spam'
- 拼接和重复
>>>s='Spam'
'Spam'
>>>s + 'xyz'
'Spamxyz'
>>>s*3
>>>'SpamSpamSpam'
三、字符串方法
在python中,表达式和内置函数可以在不同的类型之间工作,但是方法通常特定与对象类型,例如字符串方法只在字符串对象上起作用。方法是与特定对象相关联,并且作用于特定对象的简单函数。
S.capitalize() S.ljust(width[,fill])
S.casefold() S.lower()
S.center() S.lstrip()
S.count(sub [, start[,end]])
......
- 字符串方法示例:修改字符串
- 通过分片和拼接修改
>>>s='spammy' >>>s=s[:3]+'xx'+s[5:] >>>s 'spaxxy'
- replace方法
>>>s = "aa$bb$cc$dd" >>>s.replace("$","%") aa%bb%cc%dd
- 转换为支持原位置修改的对象
内置的list函数从任意序列的元素中创建一个新的列表。
利用索引进行修改>>>s='spammy' >>>L=list(s) >>>print(L) ['s','p','a','m','m','y']
修改后可以使用字符串的join方法将列表"合成"为一个字符串>>>L[3]='x' >>>print(L) ['s','p','a','x','m','y']
>>>s=''.join(L) >>>s 'spaxmy'
- 字符串方法示例:解析文本
- 字符串的split方法将一个字符从分隔符处分割成一系列字串
>>> line = 'bob hacker 40' >>> line.split() ['bob', 'hacker', '40'] >>> line = 'bob,hacker,40' >>> line.split(',') ['bob', 'hacker', '40']
四、字符串格式化
- 字符串格式化表达式:'...%s...'%(values)
- 在 % 运算符的左侧放置一个需要进行格式化的字符串,这个字符串带有一个或者多个内嵌的转换目标,都以 % 开头(如:%d)。
- 在 % 运算符右侧放置一个(或多个,内嵌在元组中的)对象,这些对象将会插入到你想让python进行格式化的左侧的字符串中,并替换一个(或者多个)转换目标。
>>> 'That is %d %s bird!'%(1,"dead") 'That is 1 dead bird!'
- 基于字典的格式化表达式
注意: 格式化总是创建一个新的字符串,而不是对左侧的字符串进行修改,因为字符串是不可变的。>>> '%(qty)d more %(food)s'%{'qty':1,'food':'spam'} '1 more spam'
- 字符串格式化方法的调用
- 字符串对象的format方法,使用主体字符串作为模板,并且接受多个参数,用来表示将要根据模板替换的值
注意: 就像 % 表达式和其他字符串方法一样,format创建并返回一个新的字符串对象。>>> template = '{0},{1} and {2}' >>> template.format('spam','ham','eggs') 'spam,ham and eggs' >>> template = '{motto},{pork} and {food}' >>> template.format(motto='spam',pork='ham',food='eggs') 'spam,ham and eggs'
网友评论