Python官方教程阅读总结-标准库2

这一部分介绍一些更高级的标准库,不得不说确实很高级,我也只用过其中的四,五个,对于某些标准库经验不是很充足,尽量把他们写得简单易懂吧。

1. 格式化输出

    1.1 reprlib模块中的repr() 方法,专门用来简短得显示一些大型的或者深层嵌套的容器,简单来说,如果要显示内容有很多,这个方法就把最前面的一些元素显示出来,其余隐藏,如下:

set 是不包含重复元素的,所以通常用来去重,第一个格输出的是repr()方法显示的,第二格是正常显示 的:

    1.2 pprint模块中pprint()方法,就是pretty print(), 美化输出,当输出的数据比较长时,pprint()方法能够自动换行,更清楚的显示出对象的结构,如下:

    1.3 textwrap 模块用来格式化文本的段落显示,使文本的显示更适应屏幕宽度,如下:

    1.4 locale 模块处理有特定文化特色的数据格式,locale模块的format()方法,提供了一个grouping 属性,可以直接组分隔符来格式化数字,如下:

2. Template(模版)

    用于一些定制化操作,用$标记的占位符占据需要修改或变动的字段,修改的时候只需向点位符传递要参数即可,就相当于套用模版,不需要整体改动,非常方便

    template是string模块下的一个类,创建类的对象的时候,传递模版,然后调用类的方法substitute()来替换占位的字段,如下:

    需要注意的是:当占位的内容与后面的字符没有空格分隔的时候要用{}括起来,如${}folk

    因为占位字段是用$标记的,所以要想显示‘$’就要用$$来表示

    调用substitute() 方法时,参数的个数要与占位字短数量一致,否则抛出异常,          safe_substitute()方法即使参数的个数不一致,也不会报错

3. 二进制数据记录格式

    struct模块的pack()和unpack()方法用于处理不定长度的二进制记录格式,H 和 I 分别代表两个字节 和 四个字节的无符号数字,如下:

4. 多线程-threading模块

    多线程用于非线性依赖的任务,一个线程的任务在等待的时候,另一个线程可以做别的作务,如一个线程用于计算,其他线程用于并行的输入输出,

5. 日志(logging)

    logging模块用于记录程序执行中的一些信息,分为五个等级的日信息,分别如下:

    这些日志信息可以写入到一个单独的日志文件中,也可以输出到标准输出,或标准错误

6. 弱引用

    weakref 模块提供一个方法,不用创建引用就可以追踪一个对象,当对象删除的时候,它也自动被移除掉,这就是弱引用。多用于缓存一个创建很费劲的对象,如:

7. 列表工具:

    7.1 array模块的array对象提供了一个数组方法用于储存相同类型的数据

    7.2 collection模块的deque对象用法和list十分相似,但是更快的append数据,从左边pop数据,但是从中间查找就比较慢了,适合实现队列和广度优先查找,如:

    7.3 bisect 模块用于操作有序列表,如:

    7.4 headq模块提供了一系列方法用于把常规列表转换成堆,最小的值在根结点,越小的值越靠近根结点,如

8. 十进制浮点运算

    decimal模块提供了十进制浮点的数据类型,用于十进制浮点运算,相比二进制实现的float类型(二进制不能精确地表示小数),decimal 非常适用于需要十进制表示的科学计算,精确度控制

    由于 精度的不同以及表示方法的不同,十进制浮点运算与float 类型的计算结果可能有差别

    decimal可以设置输出的精度,如下

这一部分确实有点生疏,详情请参见官方文档:https://docs.python.org/3/tutorial/stdlib2.html

你可能感兴趣的:(Python官方教程阅读总结-标准库2)