python记录_day06
一、小数据池
注意大前提!!!!
小数据池只针对整数、字符串和bool值,因为这些数据是不可变的,这样数据的共享才安全
小数据池也称为小整数缓存机制或驻留机制,是指在不同代码块创建部分小数据对象(具体规则官方文档也没说明,老男孩的老师总结了一些常见规则,看下图,这个了解就行)时,数据缓存共享的现象。
它的作用是在创建这些小数据对象时提升效率,减少内存浪费
小数据驻留规则:
二、再谈编码
ascii: 数字,字母, 特殊字符。 8bit,1 byte
gbk: 国标码。16bit, 2byte
unicode: 万国码。32bit, 4byte
utf-8:可变长度的unicode
英文: 8bit,1byte
欧洲文字: 16bit,2byte
中文: 24bit, 3byte
在之前Python2中内存使用的是ASCII码,python3中内存使用的是Unicode,但Unicode不利于存储和传输,所以在存储和传输时要转换成其他的编码方式。
因为不同编码字符集是不同的,所以不同的编码之间是不能直接转换的,要通过中间量,这个中间量就是unicode
比如 str是用gbk编码的字符串,如果想转成utf-8 需要先解码成unicode再编码成utf-8
s = str.decode(gbk)
str2 = s.encode(utf-8)
str2就是utf-8格式的了
注意:编码和解码之后数据是bytes类型的,形式是 b'xxx' , bytes是python中的最小数据单元。数据传输和存储时都是bytes类型
字符串如果传输:
1、传输端 编码encode(编码形式) ,结果是bytes类型
2、接收端 接受到bytes之后,需要解码decode(编码形式) !!!传输端和接受端用的编码形式要一致