base64和collections笔记

2021-01-31  本文已影响0人  lk_erzanml
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)
上一篇下一篇

猜你喜欢

热点阅读