day06 python is == 编码 解码
day06 python
一. is 和 == 的区别
== :比较, 判断, 比较的是值: 可以比较数字, 字符串, 列表, 元组, 字典,等
is :是 比较, 比较的是内存地址(id()取对象的内存地址)
a = 'bajie'
b = 'bajie'
print(a is b) #True
a = 10
b = 10
print(a is b) #True
#===========================#
#小数据池
#为了节省内存空间,数字和字符串在一定范围内的数据有相同的内存地址
#数字范围: -5~256
#字符串范围: 如果有特殊字符则不在小数据池里, 字符串单个* 20 以内在小数据池里
#===========================#
li1 = [1,2,3]
li2 = [1,2,3]
print(li1 is li2) #False
li1 = (1,2,3)
li2 = (1,2,3)
print(li1 is li2) #False
dic1 = {1:1,2:2}
dic2 = {1:1,2:2}
print(dic1 is dic2) #False
二.编码和解码
1.python3 程序运行使用的 unicode (万国码, 显示所有的内容)
2.网络传输和存储:
不用unicode, 占内存多, 占资源, 所以不用
用的是 bytes 类型
3.python存储默认 utf-8
编码
a = 'bajie'
print(a.encode('utf-8')) #编码, 结果是二进制
>>>b'bajie' #ascii 字母编码后还是字母
a = '八戒'
print(a.encode('utf-8'))
>>>b'\xe5\x85\xab\xe6\x88\x92' #硬盘中存的就是这些东写, 传输的时候也是传的这些
文件的头信息
#!/usr/bin/env python
# -*- conding: utf-8 -*- #如果以下出现中文用这个编码方式处理
解码
s = b'\xe5\x85\xab\xe6\x88\x92'
print(s.decode('utf-8')) # s用什么编码的, 就要用什么解码