发布于2019-08-06 10:49 阅读(1872) 评论(0) 点赞(2) 收藏(2)
a = 'abc'
c = a.encode() #将abc字符串编码成字节数组
d = c.decode() #将变量c的字节数组解码成对应的字符串
print(a,c,d,sep="\t")
a = '你好'
a1 = a.encode(encoding="utf-8") # 用utf-8编码集将字符串a转换成对应的字节数组
a2 = a.encode(encoding="gbk") # 用gbk编码集将字符串a转换成对应的字节数组
a11 = a1.decode(encoding = "utf-8") #用utf-8编码集将字节序列a1转换成对应的字符(注意编码时和解码时的编码集要保持一致,不然会出现如下a12乱码)
a12 = a1.decode(encoding = "gbk")
print("a = {}\na1 = {}\na2 = {}\na11 = {}\na12 = {}".format(a,a1,a2,a11,a12))
bytes() #定义一个空的bytes
bytes(int) #指定字节的bytes,被\x00填充
bytes(iterable_of_ints) -->bytes[0,255]的int组成的可迭代对象
例如:
arr = [61,62,63]
arr2 = bytes(arr) # 根据int类型列表转换成对应的字节列表,注意列表中int类型的值取值范围是【0-255】
arr3 = list(arr2) # 根据字节列表,将每个字符转换成对应的十进制数存放在新的list列表里面
arr4 = arr2.hex() #将字节列表,转换成对应的16进制字符串
print("arr = {}\narr2 = {}\narr3 = {}\narr4 = {}".format(arr,arr2,arr3,arr4))
bytes(string,encoding[,errors])–>bytes等价于string.encode(),将string字符集按照指定的编码表解码成对应的bytes集合。
bytes(bytes_or_buffer)–>immutable copy of bytes_or_buffer从一个字节序列或者buffer复制出一个新的不可变的bytes对象
* 注意:当copy的序列中是python的常量时,在python底层不会真的去拷贝一份常量,只是增加常量的引用次数.因为bytes字节数组是不可变的。
s = "年第三".encode()
s1 = bytes(s)
print(s,s1)
print(id(s),id(s1))
使用b前缀定义:
num = "61 6263"
num1 = bytes.fromhex(num) #将16进制的数字转换成对应的字节
num2 = num1.hex() #将字节转换成对应的16进制字符串
num3 = list(num1) #将字节转换成对应的10进制数,存放在新列表中
print("num1 = {}\n num2 = {} \n num3 = {}".format(num1,num2,num3))
* 索引
b’abcdef’[2]返回该字节对应的数,int类型
bytearray() #定义一个空的bytearray
bytearray(int) #定义一个指定长度的bytearray的字节数组,默认被\x00填充
bytearray(iterable_of_ints) #根据[0,255]的int组成的可迭代对象创建bytearray
bytearray(string,encoding[,errors])–>bytearray #根据string类型创建bytearray,和string.encode()类似,不过返回的是可变对象
bytearray(bytes_or_buffe)从一个字节序列或者buffer复制出一个新的可变bytearray对象
例如:
s = 'abcd'
s1 = s.encode() #将字符集按照utf-8编码成字字节数组
s2 = bytes(s1) #根据s1字节数组拷贝一个新的字节数组
s3 = bytearray(s2)
s4 = bytearray(s3)
print(s1,s2,s3,s4,sep = "\t\t")
print(id(s1),id(s2),id(s3),id(s4),sep = "\t\t")
a = "abc"
a1 = a.encode() #将字符abc转出字节数组 默认编码方式是utf-8
a2 = int.from_bytes(a1,"big") #将字节数组,用int数组表示法,使用大端模式转成int类型
a3 = a2.to_bytes(3,"big") #将a2转换成字节数组,需要指定int类型的a2表示了几个字节,使用了什么模式
a4 = a3.decode() #将字节数组解码,默认解码方式是utf-8
print("a = {}\na1 = {}\na2 = {}\na3 = {}\na4 = {}".format(a,a1,a2,a3,a4))
"啊".encode() # 编码 --->返回bytes encode()默认编码方式是utf-8
"啊".encode(encoding='gbk') # 编码,指定编码方式为gbk
ord("啊") #解码(返回是10进制整数),获取“啊”的编码。由于python的默认编码时unicode所有获取的是对应unicode编码表的编码
hex(21834) #将21834转换成16精制数
作者:徐蓉蓉
链接:https://www.pythonheidong.com/blog/article/7899/5c02d5d657c67e7276db/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!