Python基础--is、id、编码进阶

it2022-05-05  154

= 赋值      == 比较值是否相等       is 比较,比较的是内存地址id(内容)

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)

 编码、解码

1 #str --->byte encode 编码 2 s = '哈哈' 3 b = s.encode('utf-8') 4 print(b) 5 #byte --->str decode 解码 6 s1 = b.decode('utf-8') 7 print(s1)

 

转载于:https://www.cnblogs.com/dzc18/p/9313937.html


最新回复(0)