字符串
1. 字符串使用
-
序列的所有操作(索引,分片,加法,乘法,成员资格,长度,最小值,最大值)都可用于字符串
-
字符串格式化
-
使用%号:使用%分隔,左边使用字符串,右边操作数可以是任意类型,只有元组和字典可以一次格式化多个值
‘%s plus %s equals %s’ % (1, 2, 3)
%字符:标识转换说明符开始的地方
转换标志:- 左对齐,+ 在数值前加上正负号,‘ ’ (空白字符)表示正数前保留空格,0 长度不够用0填充
最小字符宽度:转换后字符至少具有的宽度,实际宽度超过不会截断,* 表示从元组读出
.后面跟精度:如果是实数表示小数点后的位数,如果是字符串表示最大宽度,超过截断,* 表示从元组读出,整数数据精度没有作用
格式化转换类型(%*) | 转换类型 | 含义 | | -------- | -------------------------------------------------------- | | d,i | 带符号十进制数 | | o | 不带符号八进制数 | | u | 不带符号十进制数 | | x, X | 不带符号十六进制数,字母分别小写,大写 | | e, E | 科学计算法表示的浮点数,e分别大写,小写 | | f, F | 十进制浮点数 | | g, G | 浮点自动,指数小于-4或小于精度则与e, E相同,否则f, F相同 | | c | 单字符,接受整数或单字符字符串串 | | r | 字符串,使用repr转换任意python对象 | | s | 字符串,使用str转换任意python对象 | + 模板字符串:substitute ```python from string import Template s = Template('$x. glorious $x!') s.subsitute(x = 'slurm') #'slurm, glorious slurm!' #如果替换单词一部分,必须用括号括起来 s = Template("It's ${x}tastic!") s.substitute(x = 'slurm') #"It's slurmtastic!" #如果字符串中有美元符使用$$ #可以使用字典提供值/名 s = Template('A $thing must never $action.') d = {} d['thing'] = 'gentleman' d['action'] = 'show his socks' s.substitute(d) #使用safe_substitute不会因缺少值报错 s = Template('A $thing must never $action $asb.') s.safe_substitute(d) #'A gentleman must never show his socks $asb.'
-
2. 字符串方法
2.1 find
- 查找子串,find(substr[, start, end]),返回字串最左端索引没有找到返回-1
- 返回找到的第一个匹配字串
- 成员字符返回的是布尔值
2.2 join
-
接收一个序列参数,用str分别连接序列的每个元素,再把新元素连接起来,序列中的元素必须是字符串,否则抛出TypeError异常
split的逆方法
seq = [1, 2, 3] sep = '+' sep.join(seq) # TypeError seq = ['1', '2', '3'] sep.join(seq) # 1+2+3
2.3 lower
- 所有字母转换为小写
2.4 replace
-
返回某字符串所有匹配项均被替换后得到的字符串
返回一个新的字符串
替换所有匹配项
2.5 split
-
分隔字符串,参数传递分隔符,不提供参数,使用空白符作为分隔符(空格,制表,换行)
返回列表
如果被分隔字符串不包含分隔符,返回只有一个元素的列表,元素是整个字符串
2.6 strip
-
返回去除了两侧空白符的字符串
-
可以指定需要去除的字符,可以传字符串,在字符串中的字符都会被去除
#1. 去除左右两端的空字符,包括空格,制表符,回车等 s = ' gumby ' s.trip() #gumby #2. 可以指定需要去除的字符,作为参数传递给strip '*** Span * for everyone !!! ***'.strip('*!') #Span * for everyone
类似还有lstrip,rstrip
2.7 translate
-
与replace类似,但是可以一次进行多个替换
# 1. 制作一个转换表,maketrans,接收2个等长的字符串,转换表包含ASCII中256个字符集 from string import maketrans table = maketrans('cs', 'kz') len(table) 'this is an incredible test'.translate(table) # 'thiz iz inkredible tezt'