li1 = [1,2,3]li2 = li1li3 = li2print(id(li1),id(li2))
数字的范围 -5 -- 256字符串:1,不能有特殊字符 2,s*20 还是同一个地址,s*21以后都是两个地址i1 = 6i2 = 6print(id(i1),id(i2))
i1 = 300i2 = 300print(id(i1),id(i2))
#剩下的 list dict tuple set 没有小数据池概念# l1 = [1,]# l2 = [1,]# print(l1 is l2)
ascii: A : 00000010 8位 一个字节
unicode A :00000000 00000001 00000010 00000100 32位 四个字节 中:00000000 00000001 00000010 00000110 32位 四个字节
utf-8 A : 00100000 8位 一个字节 中 :00000001 00000010 00000110 24位 三个字节
gbk A :00000110 8位 一个字节 中: 00000010 00000110 16位 两个字节
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk gb2312 ascii等)
Python 3: str 在内存中是用unicode编码。
bytes类型:编码方式:utf-8,gbk,gb2312,ascii
str进行存储和传输,需要转换为bytes类型
对于英文 str :表现形式:s = 'alex' 编码方式: 010101010 unicode
bytes :表现形式:s = b'alex' 编码方式: 000101010 utf-8 gbk。
对于中文: str :表现形式:s = '中国' 编码方式: 010101010 unicode
bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32' 编码方式: 000101010 utf-8 gbk。
1 s1 = 'alex' 2 # encode 编码,如何将str --> bytes, (可设置编码方式)3 s11 = s1.encode('utf-8') 4 #s11 = s1.encode('gbk') 5 print(s11) 6 7 s2 = '中国'8 s22 = s2.encode('utf-8') 9 #s22 = s2.encode('gbk')10 print(s22)
转载于:https://www.cnblogs.com/dzc18/p/9313937.html
