python 6

一、小数据池

可以使用

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'\xe4\xb8\xad\xe5\x9b\xbd'
b'\xd6\xd0\xb9\xfa'

以上为将str转换为bytes类型的方式:编码

s1 = s1.decode('utf-8')
print(s1)
中国

从bytes转换为str可以用decode:解码

 

posted on 2018-05-06 18:52  leonraw  阅读(131)  评论(0编辑  收藏  举报

导航