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