一、小数据池
可以使用
id('name')
查询'name'在内存中的地址,这个地址会在不断地变化。
小数据池:
int,str在一定范围内,如果两个数值相同,为了节省内存,共用一个内存地址。
int:-5 ~ 256
str:①有非字母元素就不存在小数据池
②单个字母 * int(21)以内就存在小数据池
剩下的类型都不存在。
二、编码
str:python3中的编码方式是 Unicode
with open('02 作业讲解.py', encoding='utf-8') as fi:
print(f1.read(), type(f1.read()))
以上为读取一个文件,并查看该文件类型。
<class 'str'>
文件的存储和传输都是通过str类型进行的。
由于python3中编码方式为Unicode,所以不能直接用于存储和传输,因为Unicode编码占内存过于浪费。
需要先转换为bytes,bytes类型的编码方式为 非Unicode。
s = '中国'
s1 = s.encode('utf-8')
s2 = s.encode('gbk')
print(s1)
print(s2)
b'xe4xb8xadxe5x9bxbd'
b'xd6xd0xb9xfa'
以上为将str转换为bytes类型的方式:编码
s1 = s1.decode('utf-8')
print(s1)
中国
从bytes转换为str可以用decode:解码