美文网首页
base64和collections笔记

base64和collections笔记

作者: lk_erzanml | 来源:发表于2021-01-31 00:05 被阅读0次
    import base64
    
    # base64是一种将不可见字符转换为可见字符的编码方式。
    # 用在不能传明文,url,cookie,传输图片
    # Base64是一种任意二进制到文本字符串的编码方法,常用于在URL、Cookie、网页中传输少量二进制数据。
    '''
    if __name__ == '__main__':
        s = 'plain text'
    
        # base64编码
        t = base64.b64encode(s.encode('UTF-8'))
        print(t)
    
        # base64解码
        t = base64.b64decode(t)
        print(type(t))
        print(t)
    
        # base32编码
        t = base64.b32encode(s.encode('UTF-8'))
        print(t)
    
        # base32解码
        t = base64.b32decode(t)
        print(t)
    
        # base16编码
        t = base64.b16encode(s.encode('UTF-8'))
        print(t)
    
        # base16解码
        t = base64.b16decode(t)
        print(t)
    '''
    # 编码之后的+和/在请求中传输的时候可能会出问题,使用urlsafe_b64encode方法会自动将:
    #
    # +映射为-
    # /映射为_
    # 这样加密之后的就都是在网络上传输安全的了。
    
    '''
    if __name__ == '__main__':
        s = 'hello, world'
    
        t = base64.urlsafe_b64encode(s.encode('UTF-8'))
        print(t)
    
        t = base64.urlsafe_b64decode(t)
        print(t)
        
    '''
    
    # 直接对流进行编码
    # 加密和解密的时候可以直接传入一个流进去,base64模块加密方法会从输入流中读取数据进行加密,同时将结果写到输出流中。
    
    
    import base64
    from io import BytesIO
    
    if __name__ == '__main__':
        input_buff = BytesIO()
        output_buff = BytesIO()
    
        input_buff.write(b'hello, world')
        input_buff.seek(0)
    
        base64.encode(input_buff, output_buff)
        s = output_buff.getvalue()
        print(s)
    
    from collections import namedtuple
    
    #定义一个带有名字的tuple
    
    Point = namedtuple('Point', ['x', 'y'])
    Circle = namedtuple('Circle', ['x', 'y', 'r'])
    p = Point(1, 2)
    c=Point(2,5)
    print(c.x)
    print(p.x)
    print(isinstance(p,Point))
    print(isinstance(p,tuple))
    
    #双向列表
    from collections import deque
    q = deque(['a', 'b', 'c'])
    q.append('x')
    q.appendleft('y')
    print(q)
    # deque(['y', 'a', 'b', 'c', 'x'])
    # deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。
    
    
    #当字典key不存在的时候,让字典不出错并且带有一个默认值
    from collections import defaultdict
    def aaa():
        return "aaa"
    dd = defaultdict(aaa)#都行
    dd = defaultdict(lambda :"bbb")
    dd['key1'] = 'abc'
    print(dd['key1'] )# key1存在
    # 'abc'
    print(dd['key2'] )# key2不存在,返回默认值
    # 'bbb'
    
    #有序的字典
    
    from collections import OrderedDict
    d = dict([('a', 1), ('b', 2), ('c', 3)])
    print(d) # dict的Key是无序的
    # {'a': 1, 'c': 3, 'b': 2}
    od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    print(od) # OrderedDict的Key是有序的
    # OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    
    #简单计数器
    # Counter是一个简单的计数器,例如,统计字符出现的个数
    
    a="dfasdfasdf"
    from collections import Counter
    c = Counter(a)
    print(c)
    

    相关文章

      网友评论

          本文标题:base64和collections笔记

          本文链接:https://www.haomeiwen.com/subject/vpnzaktx.html