跟Python Standard Library混个脸熟(一)

[TOC]

Python 本身提供了很丰富的功能,怎么学习这些东西一直是我思考的,通读整个 Python3 Standard Library 会很有帮助,可以搞不清所有细节,但是得知道提供了什么,这些能解决什么问题。平时不会用到所有,就能解决问题。有个理论叫锤子理论,要避免自己看到的所有都是钉子,那就试图去了解更多的工具,眼界开阔也是写好代码的一个因素。当你要深度使用某个具体模块的时候可以去研究其源码。

Python3.6提供了58个内建函数,一些常用的 all() , any() , dir() , range() , list() , type() ....值得注意的是,和Python2的区别是 reduce 不在其中,被放到了, functiontools 里面。这些方法都可以过一遍了解大致的用法,写出高效简洁的代码的前提。随便罗列两个 ascii(object) Python2 没有这个函数,它返回一个字符传,忽略其中的Non-ASCII Characters,忽略的方法是用\x, \u or \U 等, 这也是其和 repr() 的区别,看下面这个例子

my = {"name": "郑午"}

print(ascii(my)) # {'name': '\u90d1\u5348'}

print(repr(my)) # {'name': '郑午'}

divmod(a, b) a,b是两个实数,返回商和余数

a = 10.0

b = 1.3

print(divmod(a, b)) # (7.0, 0.8999999999999997)

内建常数是指 None , True , False , __debug__ , Ellipsis , NotImplemented 这样的,前四个是不能被重新赋值的。

主要的内建类型:numerics, sequences, mappings, classes, instances and exceptions. 这个主题下面会涉及到很多基本的东西:

1.真值测试,在Python 中很多都可以被被认为为False 如空字符串,None, 空list,... 2.布尔运算,主要有或(or), 且(and),非(not) 3.比较运算符号,除了常用的还有比较特殊的,is, is not 判断是否为同一个对象。 4.数值型( Numeric Types )和相关操作。值得记住的是Python 是支持复数运算的。 5.迭代器类型(Iterator Types), 如何让自己新建类型可迭代?以及Python迭代器本身就能说好长。 6.序列类型和相关操作,这主要是list, tuple, range。需要注意的是可变和不可变类型在代码里带来的区别。 7.字符串和相关操作,有多方法可以好好研究,会在字符串操作中带来便利 8.二进制列表类型,用得相对较少,bytes, bytearray, memoryview 9.集合类型和相关操作 10,dict 11.上下文管理器(Context Manager Types),这是个很重要的概念,后面专文解释 12.其他

所有异常都是BaseException 的子类, 异常层次结构图 可以有一个全局感受

1.string对象及其方法 2.正则 3.序列比较,difflib 4.字符串包装和填充,Text wrapping and filling 5.Unicode Database 6.readline

二进制数据相关操作

1.struct 可以实现Python bytes和c的structs 直接的数据转换,处理二进制文件,和二进制网络数据。 2.codecs

1.datetime 2.calendar 3.collections 这个里面有很多方便的东西,Counter方便的对Sequences中的元素做统计,ChainMap合并多个dict当做一个对象处理。OrderedDict有序的dict. UserDict, UserList 4.collections.abc 集合抽象类,可以结合 isinstance() 方法使用,可以用来检查某个对象是否可序列化之类, 5.优先队列(heepq) 6.biset 这是我第一次发现的东西 7.array Efficient arrays of numeric values 8.weakref 这里有个概念 weak references , wiki 解释说弱引用是相对于强引用的区别是不能保证对象不被垃圾回收.... 待仔细考虑考虑 9.types 10.copy 11.有两个方法copy,deepcopy 12.pprint 13.enum 枚举类型,谁说Python 没有枚举,不过我很少见人用到,通常都是list,dict 之类的代替了,不知道为啥

1.math, 这个很常用 2.cmath 3.decimail 4.fractions 有理数 5.random 随机函数 6.statistics 可计算常用统计量

1.itertools 创建高效的迭代器 2.functools 和值得研究的模块,可以让代码简洁高效 3.operator 提供和运算符号相对应的相关函数,如 add , 和 +

python standard lib_跟Python Standard Library混个脸熟(一)相关推荐

  1. 一句话保险系列——几大险种混个脸熟

    用人话来解释保险系列: 今天先来和各种险种混个脸熟先:重疾险,中高端医疗险,年金险,意外险,寿险 5大块,各有各的用处.(只列了咱们老百姓常用的险种,什么宠物险,齿科险,户外探险,紧急救援--都不说了 ...

  2. RIA系列技术讲座(1)——在RIA世界里混个脸熟

    在RIA世界里混个脸熟 前言 [] 同学们,大家下午好!非常感谢大家来参加我的这个技术讲座.感谢大家的同时也要恭喜大家,参加我这个讲座真是物--超所值啊!讲RIA技术,要是放在市场上,一期培训的费用能 ...

  3. python调用lib_基于python调用libvirt API

    基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...

  4. 躲开混脸熟的车型,一文带你去看2019上海车展里的新面孔

    2019上海国际车展很快就要开幕,一些车企已经按奈不住竞相发布预热信息.如果你是第一次去车展,那就忽略它们,当然也可以直接关上这篇文章,然后去尽情地去享受车展里的一切,因为所有的事物都是全新的. 但是 ...

  5. 躲开混脸熟的车型,一文带你去看2019上海车展里的新面孔...

    2019上海国际车展很快就要开幕,一些车企已经按奈不住竞相发布预热信息.如果你是第一次去车展,那就忽略它们,当然也可以直接关上这篇文章,然后去尽情地去享受车展里的一切,因为所有的事物都是全新的. 但是 ...

  6. Python资源列表-Awesome Python,收藏吧,基本全了

    记得当初学C/C++,留下的深刻印象就是严肃.谨慎,特别关注功能函数实现,写代码前会经常看书,怕自己犯低级又不可知的错误,像那些经典<C和指针>.<C缺陷和陷阱>.<编程 ...

  7. windows python安装_window 安装 python

    官网地址下载安装包 点击下载 会自动识别你当前的系统,或者点击你需要安装的平台 或者选择其他版本 执行安装 高级选项说明: Install for all users 所有用户可使用 Associat ...

  8. python中api_通过Python中的API查找相关的工作技能

    python中api 工作技能世界 (The World of Job Skills) So you want to figure out where your skills fit into tod ...

  9. 【英语学习】【Python】Programming in Python 3 的目录

    <Programming in Python 3: A Complete Introduction to the Python Language>所有版权归原书作者所有. 文章目录 Cha ...

最新文章

  1. Myeclipse 安装svn插件
  2. JavaScript高级应用(二)
  3. ICS大作业——程序人生 Hello‘s P2P
  4. VTK:金字塔用法实战
  5. 0424-学习进度条
  6. THREEJS - 利用UV偏移模拟传送带运动
  7. 11.求二叉树中节点的最大距离
  8. python 小知识总结汇整
  9. 微信小程序—Flex布局
  10. 【IP 笔记 2.】北邮 互联网协议 Internet Protocol - Transport Layer
  11. QQ心跳包格式分析 监听局域网QQ号代码
  12. android天气api接口,[Android] 免费天气预报接口
  13. finally关键字
  14. 买牛奶(南阳oj892)
  15. Day21-30 - Web前端概述
  16. Linux安装JMeter进行压力测试
  17. 如何将 SWF 文件添加到 PPT 的每一张幻灯片
  18. 互联网快讯:极米优质产品助力大屏观影;中兴手机官宣吴京为全新代言人
  19. Matlab 关联文件
  20. DB2编目远程数据库

热门文章

  1. 3.3 神经网络的输出-深度学习-Stanford吴恩达教授
  2. 对家庭网络设备行业的理解
  3. BRCM5.02编译十:cmake: command not found
  4. 使用Notepad++工具查看文件的十六进制
  5. 基于OCR的字母识别算法的matlab仿真
  6. 八、linux以模块方式注册设备
  7. 2018-2019-1 20165335 《信息安全系统设计基础》第六周学习总结
  8. websocketd 实现浏览器查看服务器实时日志
  9. 【转】Node.js最新Web技术栈(2015年5月)
  10. 存储基础知识一 主要技术DAS、SAN、NAS