python 5.4

一、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的操作方法。

# 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)
str与bytes编码转换
原文地址:https://www.cnblogs.com/liujjpeipei/p/8992445.html