Python 之内建模块整理

个人笔记、持续更新
不包括 os、shutil、io、sys 等与操作系统交互的模块

Collections

  • from collections import Iterable:eg - isinstance([1, 3, 5], Iterable)
  • from collections import Iterator:能被 next() 执行的为 Iterator,为惰性计算。


random

  • random.choice(['apple', 'pear', 'banana']) -> 'apple'
  • random.sample(range(100), 10) -> [30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
  • random.shuffle(['a', 'b', 'c', 'd']) -> 随机重排 列表
  • random.random() -> random float
  • random.randrange(6) -> random integer chosen from range(6)
  • random.uniform(0, 30) -> 指定范围的随机 浮点数


types:存储所以内置的 class 类型

  • types. FunctionType:自定义函数 class 类型
  • types. BuiltinFunctionType
    eg: type(abs)==types.BuiltinFunctionType -> True


re:正则

  • re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') -> ['foot', 'fell', 'fastest']
  • re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat') -> 'cat in the hat'


import datetime

  • datetime.date.today() -> '2019-01-28'
  • (datetime.date.today() - datetime.date(1991, 3, 22)).days -> 10174
  • datetime.datetime.strptime(date_string, format) -> Return a datetime corresponding to date_string, parsed according to format.


time

  • time.sleep(s) -> eg: time.sleep(3) # 代码执行至此处暂停3s后,继续执行
  • time.time() -> 1970年至今的时间戳(以秒为单位)
  • time.localtime()
  • time.strftime('%Y-%m-%d %X', time.localtime()) -> eg: 2019-03-20 15:53:06
  • time.ctime(time.time()) -> Tue May 8 11:05:28 2018


copy

  • copy.deepcopy() -> 深克隆


zlib:数据压缩

  • zlib.compress(str) -> 压缩字符串
  • zlib.decompress(tStr) -> 解压缩字符串


json

  • json.dump(data, f) -> 将内存中的变量 data ,存储为 json 文本
with open(filepath, 'w') as f:
    json.dump(data, f)
  • json.load(f) -> 将 json 文本转为,内存中的数据
with open(filepath) as f:
    conjson.load(f)


csv

  • reader = csv.reader(f) -> (reader 为 generator类)


unittest:单元测试

https://www.jianshu.com/p/7ea4415d587c

  • 测试用例:是一组单元测试
  • 全覆盖测试:包含一整套单元测试
  • unittest.TestCase
  • unittest.main()

推荐阅读更多精彩内容