一、id is
#查询内存地址 id # name = 'liujj' # print(id(name)) #is 比较内存地址是否相同。 # num = 1 # num2 = 1 # print(num is num2)
二、小数据池
#小数据池 #只有两种数据类型:str int ,除特殊情况外,数值相同,用同一内存地址。
#int:同一内存地址范围:-5 ~ 256
#str: 非字母(不是小数据池)
# 同一个字母*int(21) 以内是小数据池。以上不在同一地址,重复写除外。
# 其它类型都不是小数据池。
三、编码二
#编码二 #任意两个编码类型都不能互相转换。
#str:默认unicode编码。内存中存储、读取、传输文件,只有unicode编码不可以用。
#数据类型:str/bytes(具有str的所有使用方法,但是不用unicode编码)/int/bool/list/tuple/dic
#所以,需要将str转化成bytes:
# 编码: str.encode('utf-8'/'gbk') #括号中为bytes的类型
#读取时再转换回来。bytes转换成str:
# 解码: bytes.decode('utf-8'/'gbk') #括号中为bytes的类型
#bytes, 可以用所有str的操作方法。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# name = 'liujj' #str # name1 = b'liujj' #bytes # print(name.capitalize()) # print(name1.capitalize()) # s = '中国' # b = s.encode('utf-8') # print(b) #b'xe4xb8xadxe5x9bxbd' # s1 = b.decode('utf-8') # print(s1) #中国 # #utf-8 bytes ---> gbk bytes # c = s1.encode('gbk') # print(c)