使用字符串
基本字符串操作
参照序列的基本操作,但python中字符串不可变
3.2 格式化字符串:精简版
- 在字符串中使用\%作为转换说明符,在字符串后\%中紧跟字典或者元组生成格式化字符串
- (可选)-代表左对齐;+代表传值之前加正负号;’ ‘(空白字符)代表正数之前保留空格;0代表位数不够以0填充
- (可选)数字表示转换后的字符串至少有该值指定的宽度;如果是*,则从值元组中读出
- (可选)小数点后数值表示精度;若是*,则从值元组中读出
转换类型 | 含义 |
---|---|
d/i | 带符号十进制整数 |
o | 无符号八进制 |
u | 无符号十进制 |
x | 无符号小写十六进制 |
X | 无符号大写十六进制 |
e | 小写科学计数法表示的浮点数 |
E | 大写科学计数法表示的浮点数 |
f/F | 十进制浮点数 |
g/G | 如果指数大于-4或小于精度值,与e/E相同,反之与f/F相同 |
c | 整数或单字符字符串 |
r/s | 原始字符串/字符串或能转换为其的对象 |
模板字符串
1 2 3 4 |
from string import Template s=Template('${name}') s.substitute(name=yourstring) |
- 模板字符串对象模板的substitute方法将会转换
- 若替换的字段为单词的一部分,需要明确指明词尾(使用{})
- 还可使用字典进行批量模板替换
3.4 字符串方法
在string模块中定义的一些常量
名称 | 介绍 |
---|---|
digitals | 包含0~9的字符串 | letters | a-zA-Z |
lowercase | a-Z |
printable | 可打印字符 |
punctuation | 所有符号 |
uppercase | A-Z |
在3.0以后,相关方法被ascii_xxxxx代替
给值查找索引方法
1 2 3 4 5 |
str.find(sub[,start[,end]])->(found?firstindex;-1) str.rfind(sub[,start[,end]])->(found?lastindex;-1) str.index(sub[,start[,end]])->(found?firstindex;raise TypeError) str.rindex(sub[,start[,end]])->(found?lastindex;raise TypeError) |
连接方法
1 2 |
str.join(iterable)->str |
大小写方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
str.upper() str.lower() # 转换为制定大\小写 str.islower()->bool str.isupper()->bool #检测是否为大/小写 str.swapcase() #大小写互换 str.title() #机械化单词首字母大写 string.capwords(str)#这是string模块函数 #智能化单词首字母大写 str.capitalize() #字符串首字母大写 str.istitle() #检测是否符合title转换后格式 |
计数方法
1 2 3 |
str.cout(sub[,start[,end]]) # 求出限定范围内符合者数量 |
前缀后缀检查
1 2 3 4 5 |
str.startwith(prefix[,start[,end]])->bool # 确定指定范围前缀是否为给定值 str.endwith(suffix[,start[,end]])->bool # 确定指定范围后缀是否为给定值 |
匹配替换方法
1 2 3 4 5 |
str.replace(old,new[,max]) # 返回字符串的副本,old被new替换,最多max个 str.expandtabs([tabsize]=8) # 返回字符串的副本,其中tab被空格替换,默认8个 |
分隔序列方法
1 2 3 4 5 6 7 |
str.split([sep=' ',[maxsplit]]) # 返回字符串中每个单词被切割并添加sep作为分隔的副本,最多分隔maxsplit块 str.rsplit([sep=' ',[maxsplit]]) # 返回字符串中每个单词被切割并添加sep作为分隔的副本,最多分隔maxsplit块,从右向左计数 str.splitlines([keepends]) #返回包含字符串中每行的列表,如果给予keepends则保留换行符 |
去除指定字符方法
1 2 3 4 5 6 7 |
str.strip([chars]) #返回去除两端所有空白字符的字符串副本,若给chars则去除chars str.lstrip([chars]) #返回去除左端所有空白字符的字符串副本,若给chars则去除chars str.rstrip([chars]) #返回去除右端所有空白字符的字符串副本,若给chars则去除chars |
批量匹配替换方法
1 2 3 4 5 6 7 |
str.translate(table[,deletechars]) # 返回将字符串中字符按table(由string模块中maketrans规则生成)进行匹配替换后的字符串 #(给予deletechars参数将会删除这些字符) import string.maketrans table=string.maketrans('cs''kz') #转换表示是包含anscii字符集中256个字符的替换字母字符串 |
对于其他语言,使用unicode字符串及locale模块中的国际化功能解决