1.小数据池
目的: 缓存字符串, 整数, 布尔值. 在使用的时候不需要创建过多的对象
缓存: int, str, bool
int: 缓存范围 -5~256
str:
1. 长度小于等于1, 直接缓存
2. 长度大于1. 字符串中如果只有数字, 字母, 下划线. 就会缓存
3. 乘以1. 同上; 乘以大于1的整数, 包含数字, 字母, 下划线. 最终长度小于20会缓存
4. 使用sys模块中的intern()缓存字符串
代码块的关系: 如果在同一个代码块中,默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算, 遵循上面的规则
如果跨代码块,按照上面的规则执行的
2.is 和 == 的区别
is: 比较的是内存地址
==: 比较的是值
3.decode和encode
python3内存中使用的是unicode.
unicode => utf-8 encode("utf-8")
utf-8 => unicode decode("utf-8")
unicode => GBK encode("GBK")
GBK => unicode decode("GBK")
utf-8和gbk不能直接转换
bytes是字符串的另一种表示形式