day006 小数据池,再谈编码

一、小数据池,(常量池)
*** 小数据池只针对 int, str, bool三种类型而言
1、代码块:
一个模块、一个函数、一个类、甚至每一个command命令、一个文件,都是一个代码块
2、is 和 == 的区别
1.id() 查看一个变量的内存地址
2.is 和 ==
== 判断左右两边的值是否一致
is 判断左右两端的内存地址是否一致
3、小数据池的作用
为了快速创建字符串对象,减少内存的浪费
4、
用缓存的前提, 1.数据可共享 2.不可变
二、再说编码
1.ascii: 最早的编码,由字母、数字、特殊字符组成,没有中文,8bit
2.gbk: 国标码,包含ascii编码和中文常用编码(但还不全),16bit,2个byte
3.unicode: 万国码,包含所有国家的编码,32bit,4byte
4.utf-8: 可变长度的万国码,
英文:1个byte, 8bit
欧洲文字: 2个byte, 16bit
中文:3个byte, 24bit
python在内存中使用Unicode
python2 使用ASCII
python3 使用Unicode
三、字符串的传输(encode, decode)
encode(编码) 结果是bytes类型
接受到bytes之后。 需要解码
decode(编码). 结果是字符串
fe:
s = "我是文字"
bs = s.encode("GBK") # 这里编码成GBK的文字
# 把GBK转换成UTF-8
# 首先要把GBK转换成Unicode,即解码
s = bs.decode("GBK")
# 然后重新进行编码成 UTF-8
bss = s.encode("UTF-8") # 重新编码
print(bss) # b'xe6x88x91xe6x98xafxe6x96x87xe5xadx97'


原文地址:https://www.cnblogs.com/yipianshuying/p/9845999.html