博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七天-数据池/常量池 编码补充
阅读量:5098 次
发布时间:2019-06-13

本文共 1784 字,大约阅读时间需要 5 分钟。

 

 

小数据池/常量池(坑,别纠结) :

  小数据池 一种数据缓存机制.也被称为驻留机制 

  用缓存的前提: 数据可以被共享。不可变数据类型

  作用/意义:把数据存在小数据池 快速创建对象 共享 节省内存 解释字符串赋值问题等

  python中只针对:整数,字符串串,布尔值    注意共享的是不可改变的数据类型

 

  id()  is  ==

1 # id() 查看一个变量表示的值的内存地址 2 a = 1000 3 b = 1000 4 c = "lijie" 5 print(id(a)) # 2602674608112  内存地址 6 print(id(b)) # 2602674608112 7 print(id(c)) #  2602703864248 8  9 # == 判断左右两边的值是否一致10 print(a == b)  # 判断左右两边的值11 print(a == c)12 13 # is 判断左右两边的内容地址是否一致14 print(a is b)  # 判断左右两边内容地址15 print(b is c)

 

  缓存

  为什么有缓存 数据保存安全 速度快 加大吞吐量 分布式 异地部署(如 Google无盘数据中心)

  单纯的创建变量。都是有缓存的

1 # 单纯的创建变量。都是有缓存的2 a = 498763 b = 498764 print(a is b)  # True5 a = 49786*206 b = 49786*207 print(a is b) # True

  注意 在命令行中(command模式) 小数据池 int取值范围在[-5,256]

1 # 注意 在命令行中(command模式) 小数据池 int取值范围在[-5,256]2 a = 20003 b = 20004 print(a is b) # 在py文件里面是True

  但在命令行中:

  原因: 在代码块内的缓存机制是不一样的 故在py文件里面是True 在command模式中是False

 

数据池不必纠结,了解会用就好,官方也没详细解释。

 

编码 转码:

  python3中使用的是unicode,python2中使用的是ascii码,但unicode 太长适合计算不适合存储. utf-8适合存储和传输.因此需要用用到编码转换.

  编码:  .encode()   

  注意编码和解码时都需要制定编码格式.

1 #.encode()   2 s = "嘿en哈" 3 s0 = "JJ" 4 bs = s.encode("utf-8") # 制定utf-8格式 5 bs0 = s0.encode("utf-8") 6 # 英文编码之后结果和源字符串一致.中文编码之后的结果根据编码不同.编码结果不同. 7 print(bs0) # b'JJ' 英文编码后和原来一致 8 print(bs)  # b'\xe5\x98\xbfen\xe5\x93\x88'  一个中文utf-8三字节 9 bs0 = s0.encode("gbk")10 bs = s.encode("gbk")11 print(bs0) # b'JJ'12 print(bs) # b'\xba\xd9en\xb9\xfe'  一个中文gbk 两字节

  解码:.decode()

1 j = b'\xba\xd9en\xb9\xfe'2 j1 = j.decode("gbk")3 print(j1)

  编码:存储和传输时 encode()

  解码:接收数据时 decode()

  b'xxxxx'这种格式的数据是bytes类型的数据  bytes是python中的最小数据单元

  数据传输(包括文字/图片/视频)都是bytes(如直播)————流程:编码——推流——解码——用户

 

1 # 练习 把一个utf-8编码变成GBK编码2 bm = b'\xe5\x98\xbfen\xe5\x93\x88'3 4 bm0 = bm.decode() # 先解码成Unicode5 bm1 = bm0.encode("gbk") # 再编码成gbk6 print(bm1)

 

转载于:https://www.cnblogs.com/xi1419/p/9845040.html

你可能感兴趣的文章
快速判断
查看>>
小米范工具系列之十二:绿盟报告提取端口工具
查看>>
用户界面与业务逻辑的分离
查看>>
山东历史沿革 (zz)
查看>>
编程注意事项
查看>>
MySQL innodb中各种SQL语句加锁分析
查看>>
继续学习C:数字进制表示
查看>>
Java开发牛人十大必备网站
查看>>
荐读|属性与可直接访问的数据成员之间应该如何选
查看>>
angular中的$http服务
查看>>
一步一步分析Caliburn.Micro(三:绑定执行方法ActionMessage是怎么执行的)
查看>>
Sublime Text快捷键
查看>>
.NET 微信开放平台接口
查看>>
js、jquery报错
查看>>
IOS 多线程(3) --线程安全
查看>>
Git上传时,忽略多个不想上传的文件——每周汇总(第一周)
查看>>
Volley
查看>>
【转载】async await 异步编程详解
查看>>
基于上下文的防火墙
查看>>
计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)
查看>>