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

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

li1 = [1,2,3]
li2 = li1
li3 = li2
print(id(li1),id(li2))

数字,字符串 小数据池

数字的范围 -5 -- 256
字符串:1,不能有特殊字符
              2,s*20 还是同一个地址,s*21以后都是两个地址
i1 = 6
i2 = 6
print(id(i1),id(i2))

i1 = 300
i2 = 300
print(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类型
对于英文:
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。。。。

猜你喜欢

转载自www.cnblogs.com/dzc18/p/9313937.html
今日推荐