一. 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用什么编码的, 就要用什么解码