day6 基础总结和编码方式

# = 赋值 == 比较值是否相等 is 比较内存地址
li1 = [1, 2, 3]
li2 = li1
print(li1 is 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)

s = 'alex'
s1 = b'alex'
print(s1,type(s1))

s = "中国"
print(s, type(s))
s1 = b"中国" //报错
print(s1, type(s1))

s1 = 'alex'
# encode 编码,如何将 str-->bytes,()内自定义编码方式
s11 = s1.encode('utf-8')
print(s11)

s2 = '中国'
s22 = s2.encode('gbk')
print(s22)

编码方式总结:

ascii
A:00000010 一个字节8位

unicode
A: 00000000 00000001 00000010 00000100 32位 4个字节
中:00000000 00000001 00000010 00000110 32位 4个字节

utf-8
A: 0010 0000 8位 1个字节
中: 00000001 00000101 00000011 24位 3个字节

gbk
A: 00000010 8位 1个字节
中: 00000001 00000010 16位 两个字节

1,各个编码之间的二进制,是不能互相是别的,会产生乱码
2,文件的储存,传输,不能是Unicode(只能是utf-8, utf-16, gbk, gb2312, ascii等)

py3:
str 在内存中是Unicode储存的.
bytes类型
对于英文:
str : 表现形式 s = 'alex'
内部编码方式: 0101011100.... Unicode
bytes:表现形式 s = b'alex' #将str用bytes编码
内部编码方式: 0101011100.... utf-8 gbk.....
对于中文:
str : 表现形式 s = '中国'
内部编码方式: 0101011100.... Unicode
bytes:表现形式 s = b'x\e91\e91\e54\e61\e32\e21' #将str用bytes编码 16进制编码
内部编码方式: 0101011100.... utf-8 gbk.....
posted @ 2019-02-26 22:38  云川望雨  阅读(121)  评论(0编辑  收藏  举报