Python3.8常用内置库总结
string字符串
字符串是经常被使用的类型,在这里简单介绍一下几种字符串格式化方法和常用方法。
格式化方法
printf风格
这种风格和C语言里的很类似,有C语言基础的同学可以快速上手,但是这种方法很多情况下会出现错误,应用起来也不够灵活。
printf风格最大特征是使用 % 运算符,常见语法为 “str %format” % value。经常用到的还有一系列格式符,即在format位置,比如 s 表示字符串,c 表示单个字符,d 表示十进制整数,x 表示十六进制整数… 等等,详细列表见官方文件。还可以用如下的方式,对格式进行一步式控制:%[(name)] [flages] [width] . [precision] typecode
以下为一些代码例子(左边代码右边结果):
第二行里+属于flag,表示向右看齐,10为长度,x为格式符表示十六进制;而注意第三行和第二行的不同之处是flag前加上了name s,由此一来后面的赋值就直接代入s,s之后的也都当作字符串处理。
而最后一行里 * 表示此参数为可赋值参数,即第几个*就表示在value里的第几个值,而value里最后的值为需要格式化的非参数字符串。
Formatter
Formatter是string下的类,它包含有一系列公用方法:
如果我们想把一组元组或者字典里的值格式化并穿插在字符串里,首先先定义一个formatter:
- formatter = string.Formatter()
可以理解为这是填空的笔。我们有要填的字字(eg: data = (“Pi =”, 3.1415926)) 和 字和空格(eg: strtmp = “This is a test: {}{:.4f}”) 。
- vformat(format_string, args, kwargs): 执行格式化的实际工作
vformat这个函数要做的就是写的过程,即按顺序把data里的每一个值对应写在strtmp里的每一个{}处,{}内是格式要求。参数分别意思为:format_string:需要去格式化的目标字符串(字和空格);args:要填的字,类型为元组;kwargs:要填的字,类型为字典。来看一个例子:
理解了vformat函数后,我们来看用的最多的API方法:**format(format_string,*args,kwargs) 其实就是一个调用vformat的包装器,我们只用在后两个参数中二选一即可。以上例子改写如下:
这是python3.8的主流字符串格式化方法,还有一系列formatter包含的方法都使我们能更灵活的自定义格式化。
参考:https://www.jianshu.com/p/faaa48f4c511
Template
通过string.Template可以为Python定制字符串模板,也是比较常用的方法:
语法相比于formatter更好理解,这里用它来演示一下下一部分的前两个方法。
字符串内置常用函数
都比较简单,直接上例子:
结果如下:
- str.capitalize():大写首字母
- str.center(width):生成长度为width的字串,其中str居中
- str.count(char):计算char出现次数
- str.find(char):找到char出现的index
- str.partition(char): 把字符串切片并生成元组(char之前,char,char之后)
- str.replace(old_char,new_char):替换所有old为new
- str.split(char): 把字符串按char断开,除去char生成list
- str.splitlines():按行断开(“\n”)
- str.strip(str2):去掉头和尾包含有str2的字符,到第一个非str2里的char为止
- str.join():把str和str结合(eg: s1.join(s2)意思是每个s2的元素都被s1隔开:s1=‘abc’,s2=‘123’,s1.join(s2)=‘1abc2abc3’
)或者str和str类型的list/tuple/dictionary交叉结合为一个新的字符串。(字典key必须为string类型)
写码技巧
- 把一个字符串逆向print