zoukankan      html  css  js  c++  java
  • python学习笔记——常用内建模块_编码

    hashlib

    MD5

    import hashlib
    md5 = hashlib.md5()
    md5.update('helllo world'.encode('utf-8'))
    print(md5.hexdigest())
    

    MD5的结果是固定的128 bit字节,通常为32位16进制字符串。
    如果数据量大的话,可以使用多个update组合使用,效果和直接使用相同。
    SHA1

    import hashlib
    sha1 = hashlib.sha1()
    sha1.update('hello'.encode('utf-8'))
    sha1.update('world'.encode('utf-8'))
    print(sha1.hexdigest())
    

    SHA1的结果是160 bit字节,通常使用40位的16进制字符串表示。

    itertools

    itertools模块主要提供用于操作迭代对象的函数。

    chain()

    chain()可以把一组迭代对象串联起来,形成一个更大的迭代器。

    >>> for c in itertools.chain('ABC', 'XYZ'):
    ...     print(c)
    # 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z'
    

    groupby()

    groupby()把迭代器中相邻的重复元素跳出来放到一起

    >>> for key, group in itertools.groupby('AAABBBCCAAA'):
    ...     print(key, list(group))
    ...
    A ['A', 'A', 'A']
    B ['B', 'B', 'B']
    C ['C', 'C']
    A ['A', 'A', 'A']
    

    itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Iterator,只有用for循环迭代的时候才真正计算。

    contextlib()

    任何对象,只要正确实现了上下文管理,都可以使用with语句。
    上下文管理通过 ** enter__和__exit ** 这两个方法实现。

    @contextmanger

    from contextlib import contextmanager
    
    class Query(object):
    
        def __init__(self, name):
            self.name = name
    
        def query(self):
            print('Query info about %s...' % self.name)
    
    @contextmanager
    def create_query(name):
        print('Begin')
        q = Query(name)
        yield q
        print('End')
    

    这样@contextmange这个decorator接受一个generator,用yield把with...as var变量输出出去,with语句即可正常工作。

    with create_query('Bob') as q:
        q.query()
    

    testMD5.py

    import hashlib
    md5 = hashlib.md5()
    md5.update('helllo world'.encode('utf-8'))
    print(md5.hexdigest())
    
  • 相关阅读:
    根据输入参数,判定时间范围CheckTimeSpan
    C#登出系统并清除Cookie
    MySQL中使用group_concat遇到的坑
    MySQL中group by 与 order by 一起使用排序问题
    使用VMware安装CentOS 7
    VMware安装Linux提示此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
    Yii2处理密码加密及验证
    Yii2 的安装及简单使用
    git merge的使用
    PHP中上传文件打印错误,错误类型
  • 原文地址:https://www.cnblogs.com/pr1s0n/p/12246044.html
Copyright © 2011-2022 走看看