Python3.8常用内置库总结

string字符串

字符串是经常被使用的类型,在这里简单介绍一下几种字符串格式化方法和常用方法。

格式化方法

printf风格

这种风格和C语言里的很类似,有C语言基础的同学可以快速上手,但是这种方法很多情况下会出现错误,应用起来也不够灵活。

printf风格最大特征是使用 % 运算符,常见语法为 “str %format” % value。经常用到的还有一系列格式符,即在format位置,比如 s 表示字符串,c 表示单个字符,d 表示十进制整数,x 表示十六进制整数… 等等,详细列表见官方文件。还可以用如下的方式,对格式进行一步式控制:%[(name)] [flages] [width] . [precision] typecode

以下为一些代码例子(左边代码右边结果):
Python3.8常用内置库总结Python3.8常用内置库总结
第二行里+属于flag,表示向右看齐,10为长度,x为格式符表示十六进制;而注意第三行和第二行的不同之处是flag前加上了name s,由此一来后面的赋值就直接代入s,s之后的也都当作字符串处理。
而最后一行里 * 表示此参数为可赋值参数,即第几个*就表示在value里的第几个值,而value里最后的值为需要格式化的非参数字符串。

Formatter

Formatter是string下的类,它包含有一系列公用方法:
如果我们想把一组元组或者字典里的值格式化并穿插在字符串里,首先先定义一个formatter:

  1. formatter = string.Formatter()

可以理解为这是填空的笔。我们有要填的字字(eg: data = (“Pi =”, 3.1415926)) 和 字和空格(eg: strtmp = “This is a test: {}{:.4f}”) 。

  1. vformat(format_string, args, kwargs): 执行格式化的实际工作

vformat这个函数要做的就是写的过程,即按顺序把data里的每一个值对应写在strtmp里的每一个{}处,{}内是格式要求。参数分别意思为:format_string:需要去格式化的目标字符串(字和空格);args:要填的字,类型为元组;kwargs:要填的字,类型为字典。来看一个例子:Python3.8常用内置库总结

理解了vformat函数后,我们来看用的最多的API方法:**format(format_string,*args,kwargs) 其实就是一个调用vformat的包装器,我们只用在后两个参数中二选一即可。以上例子改写如下:

Python3.8常用内置库总结
这是python3.8的主流字符串格式化方法,还有一系列formatter包含的方法都使我们能更灵活的自定义格式化。

参考:https://www.jianshu.com/p/faaa48f4c511

Template

通过string.Template可以为Python定制字符串模板,也是比较常用的方法:
Python3.8常用内置库总结
语法相比于formatter更好理解,这里用它来演示一下下一部分的前两个方法。

字符串内置常用函数

都比较简单,直接上例子:Python3.8常用内置库总结
结果如下:
Python3.8常用内置库总结

  1. str.capitalize():大写首字母
  2. str.center(width):生成长度为width的字串,其中str居中
  3. str.count(char):计算char出现次数
  4. str.find(char):找到char出现的index
  5. str.partition(char): 把字符串切片并生成元组(char之前,char,char之后)
  6. str.replace(old_char,new_char):替换所有old为new
  7. str.split(char): 把字符串按char断开,除去char生成list
  8. str.splitlines():按行断开(“\n”)
  9. str.strip(str2):去掉头和尾包含有str2的字符,到第一个非str2里的char为止
  10. 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
    Python3.8常用内置库总结Python3.8常用内置库总结