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(编码形式)    !!!传输端和接受端用的编码形式要一致

原文地址:https://www.cnblogs.com/zhang-yl/p/9846490.html