python3 str编码_python数据池,python3编码str转bytes,encode

深藏阁楼爱情的钟 2022-12-31 15:28 245阅读 0赞

一、python2 python3的区别

默认编码:2—ASCII码 3—-UTF-8

print:python2 可以不需要加括号(),python3必须加括号

python2中有range,还有xrange—生成器,可转换成range;python3中只有range

python2中的input,raw_input(); python3:input()

二、

  1. = 是赋值  == 是比较值是否相等  is也是比较,比较的是内存地址(看是不是一个东西)  id(内容) :内存地址

#li1 = [1,2,3]#li2 = li1#li3 = li2#print(id(li1),id(li2)) 改变一个,另一个也会改变

2.数字,字符串—-小数据池(节省内存)

#数字,字符串 小数据池#数字的范围 -5 — 256#字符串:1,不能有特殊字符#2,s*20 还是同一个地址,s*21以后都是两个地址#i1 = 6#i2 = 6#print(id(i1),id(i2)) 一样的#i1 = 300#i2 = 300#print(id(i1),id(i2)) 不一样。pycharm显示一样是其影响,应在终端里操作。

其他的:list dict tuple set 无数据池概念

三、编码进阶

ascii

A :000000108位 一个字节

unicode A :00000000 00000001 00000010 0000010032位 四个字节

中:00000000 00000001 00000010 0000011032位 四个字节

utf-8 A : 001000008位 一个字节

中 :00000001 00000010 0000011024位 三个字节

gbk A :000001108位 一个字节

中 :00000010 0000011016位 两个字节1,各个编码之间的二进制,是不能互相识别的,会产生乱码。2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

utf-8与gbk互相转化,需先转换成Unicode;

py3:

str 在内存中是用unicode编码。  问题:文件不能传输。(文件可理解成大字符串) 需转换成utf-8或gbk方式存储传输。

bytes类型(数据类型的一种,跟字符串很像) 编码方式为utf-8或gbk或gb2312。

所以要将str转为bytes

![Image 1][]

对于英文:

str :表现形式:s = ‘alex’

编码方式: 010101010 unicode

bytes :表现形式:s = b’alex’

编码方式: 000101010 utf-8 gbk。。。。

对于中文:

str :表现形式:s = ‘中国’

编码方式: 010101010 unicode

bytes :表现形式:s = b’x\e91\e91\e01\e21\e31\e32’  十六进制,人看不懂(三个字节一个中文)若两个字节表示一个中文,则时GBK

编码方式: 000101010   utf-8   gbk。。。。

如何将str转换成bytes类型?

s1 = ‘alex’

#encode 编码,如何将str —> bytes, ()

s11 = s1.encode(‘utf-8’)

s11= s1.encode(‘gbk’)print(s11)  #b’alex’

s2= ‘中国’s22= s2.encode(‘utf-8’)

s22= s2.encode(‘gbk’)print(s22)

s11 = s1.encode(‘utf-8’)

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python3编码规范

    Python核心发行代码里面优先使用ASCII码或Latin-1编码。3.0后UTF-8编码优先于Latin-1。 一 空格与缩进: 缩进 对于每一次缩进使用4个空格