数字概念,字符串----小数据池 数字的范围:-5---256 字符串: 1,不能有特殊字符 2,s*20还是同一个地址,s*21之后就是另外一个地址
i1 = 6i2 = 6print(id(i1),id(i2))#Truei3 = 300i4 = 300print(id(i3),id(i4))#False#剩下的list dict tuple set,没有小数据池的概念l1 = [1,]l2 = [1,]print(l1 is l2) #False
i1 = 6i2 = 6print(id(i1),id(i2))#Truei3 = 300i4 = 300print(id(i3),id(i4))#False#剩下的list dict tuple set,没有小数据池的概念l1 = [1,]l2 = [1,]print(l1 is l2) #False
python3编码
ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000010 0000001 000000100 32位 4个字节 中:00000000 00000010 0000001 000000100 32位 4个字节 utf-8 A : 00100000 8位 一个字节 中:00000001 00000010 00000110 24位 3个字节 gbk A :00000110 8位 1个字节 中:00000010 00000110 16位 两个字节
1:各个编码之间的二进制,是不能互相识别的,会产生乱码 2:文件的储存与传输不能是unicode(只能是utf-8 utf-16 gbk ,gb2312,ascii) py3 : str在内存中是用unicode编码储存的 bytes类型 对于英语: str: 表现形式:s='alex' 编码方式:01010101 unicode bytes:表现形式:s=b'alex' 编码方式:00011101 utf-8 gbk ...
s='alex's1=b'alex'print(s,type(s))#alexprint(s1,type(s1))#b'alex'
对于中文: str: 表现形式:s = '中国' 编码方式:01010101 unicode bytes:表现形式:s = b'x\e91\e91\e01\e21\e31\e32'(该编码方式是utf-8) 编码方式:00011101 utf-8 gbk...
s = '中国'print(s,type(s)) #中国s1 = b'中国'print(s1,type(s1)) #此时将会报错
encode 编码
编码方式:如何将unicode-->utf-8、gbk... 表现形式:如何将str-->bytes,而且可以设置编码方式(encode)
s11 = s1.encode('utf-8')print(s11) #结果b'alex's2 = '中国'print(s2.encode('utf-8')) #b'\xe4\xb8\xad\xe5\x9b\xbd'print(s2.encode('gbk')) #b'\xd6\xd0\xb9\xfa'