3.23 day6 编码

a = 1000

b = 1000

print(a==b) True

#两个等号比较的是数值

#is比较的是内存位置

print(a is b) false

print(id(a))

print(id(b))

内存地址不一样,相当于门牌号

#小数据池:在一定范围内设定一样的值,共用位置节省空间

#数字 在-5-256范围

#字符串:1.如果含有特殊字符,不存在小数据池 2.单个字符在int(20)以内有小数据池

#其他都不存在数据池

#编码

1.编码之间的二进制互不识别

2.文件的储存和传输通过0101010,但是不能用unicode,浪费空间

python3当中的编码

  python3当中的str在内存中的编码方式是unicode,不能直接储存和传输

bytes类型的编码方式是非unicode,是utf-8和gbk

英文

  str:表现形式 s=‘laonanhai’

    内部编码:unicode

  bytes:表现形式 s=b‘laonanhai’

    内部编码:非unicode

中文

  str: 表现形式 s='老男孩‘

    内部编码:unicode

  bytes:表现形式 s=b'xe8x80x81xe7x94xb7xe5xadxa9'

    内部编码:非unicode

s = '老男孩'
s1 = s.encode('utf-8')
print(s1)
编码的补充
s = 'alex'
s1 = s.encode('utf-8')
编码 unicode -> utf-8
s2 = s.encode('gbk')
编码 unicode -> gbk

s3 = s1.decode('utf-8')
print(s3)
解码 utf-8转化成unicode

如何将gbk转化成utf-8?是不能直接转化的,只能先转到unicode,再转换
s = 'alex'
s1 = s.encode('gbk')
print(s1)
s2=s1.decode('gbk').encode('utf-8')
print(s2)

s = '老男孩'
s1 = s.encode('gbk')
print(s1)
s2=s1.decode('gbk').encode('utf-8')
print(s2)

b'alex'
b'alex'
b'xe8x80x81xe7x94xb7xe5xadxa9'
原文地址:https://www.cnblogs.com/kateli/p/8648494.html