一:小数据池
1.python运行中的缓存:
2.目的:缓存我们字符串,整数,布尔值。在使用的时候不需要创建过多的对象
3.python 缓存数据:缓存:int, str, bool、
int: 缓存范围 -5~256
str:
1. 长度小于等于1,直接缓存
2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存
3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于20会缓存
4. 使用sys模块中的intern()缓存字符串
代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则
如果跨代码块,按照上面的规则执行的
二, is 和"=="的区别: is 是比较变量指向的内存地址是不是一致,"==" 比较的是变量的值是否一致
for E : list1 = [1,2,3,4,5]
list2 = [1,2,3,4,5]
list1 == list2
>>>True
list1 is list2
>>>False
"==", 比较的是两个变量赋予的值是不是相同: lis1 与list2 对应值 是一样的,
is 说的是两个变量是不是一样: list1 不是list2 , list1 增加值,list2 不会变
三: 编码转换 decode和encode
python3内存中使用的是unicode。
unicode => utf-8 encode("utf-8")
a = "李白"
=>>转换成 utf-8编码 : a.encode("utf-8")
utf-8 => unicode decode("utf-8")
b = 'xe6x9dx8exe7x99xbd'
>>>用utf - 8解码=> : b.decode('utf-8')
utf-8和gbk不能直接转换
bytes是字符串的另一种表示形式