python_day6 小数据池和再谈编码

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是字符串的另一种表示形式

猜你喜欢

转载自www.cnblogs.com/lauuu/p/9622292.html