IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python中常用的内建模块

    键盘上的舞者发表于 2016-05-29 12:34:16
    love 0

    使用Python最大的好处就是里面封装了很多常用的东西,很方便的调用,不用再自己去导入其他的第三方模块。下面就介绍一些一些常用的内建模块。

    ①、datetime

    from datetime import datetime
    #获取当前的时间
    now = datetime.now()
    #将时间转换成时间戳
    t = datetime.now().timestamp()
    #将时间戳转换成时间
    tt = datetime.fromtimestamp(t)
    #获取UTC时间
    ttt = datetime.utcfromtimestamp(t)
    #将str转换为datetime
    str_time = datetime.strptime('2016-5-25 18:19:00', '%Y-%m-%d %H:%M:%S')
    #将datetime转换成str
    str_time1 = now.strftime('%Y-%m-%d %H-%M-%S')
    #对时间可以直接使用+,-,但是需要导入timedelta类
    from datetime import timedelta
    print(now + timedelta(hours = 10))
    print(now + timedelta(minutes = 5))

    ②、collections

    #collections
    #如果你用一个tuple表示一个坐标,别人阅读你代码的时候很难看懂,这时候就可以使用
    #collections来解决这个问题了
    from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y'])
    p = Point(1, 2)
    print('横坐标:', p.x, '纵坐标:', p.y)
    #在比如一定一个球的球心
    Circle = namedtuple('Circle', ['x', 'y', 'z'])
    c = Circle(10, 10, 20)
    print(c.x, c.y, c.z)
    #deque,为了弥补list插入和删除效率低的问题,是一个双向的列表,适用于队列和栈
    from collections import deque
    p = deque([1, 2, 3, 4, 5])
    p.appendleft(0)
    #counter是一个计数器
    #统计字母个数
    from collections import Counter
    count = Counter()
    str = 'aabbccccdddsadasdasdaskjhkjh'
    for ch in str:
        count[ch] = count[ch] + 1
    print(count)

    ③、base64

    对二进制进行编码,用一个64位的字符来表示任意二进制的方法

    ④、struct

    在python中没有专门的处理字节的类型,那么如何将任意类型转换成bytes呢?

    使用这个Struct可以轻松的实现这个。

    ⑤、hashlib

    #!/usr/bin/env python3
    # _*_ coding:utf-8 _*_
    import hashlib
    md5 = hashlib.md5()
    md5.update('admin888'.encode('utf-8'))
    print(md5.hexdigest())

    ⑥、itertools

    itertools提供了非常有用的用于操作迭代对象的函数。

    #!/usr/bin/env python3
    # _*_ coding:utf-8 _*_
    import itertools
    #创建一个无限的迭代器
    n = itertools.count(1)
    for i in n:
        print(i)
    #repeat负责把一个元素无限重复下去,可以提供第二个参数来限定循环的次数
    n = itertools.repeat('abc', 3)
    for i in n:
        print(i)
    #chain把一组迭代对象串联起来,形成一个更大的迭代器
    for c in itertools.chain('ABC', 'DEF')
        print(c)
    #groupby把迭代器中相邻的重复元素跳出来放在一起
    for key, group in itertools.groupby('AAABBBBCCCSSSAAAA'):
        print(key, list(group))

    还有蛮多好用的内建模块,这里就不一一介绍了~



沪ICP备19023445号-2号
友情链接