day06 再谈编码

---恢复内容开始---

今日主要内容
1. 小数据池, 常量池,
  id() 查看变量的内存地址

  is和== 区别:  (返回bool)
  is 判断内存地址是否一致  
  == 判断内容是否一致  

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

  补充:缓存

  数据保存在硬盘里,但是硬盘的读写读写速度较慢,无法满足高并发(互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求.  高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。)的需要.  故而需要读写速度更高的缓存来处理.

  小数据池只针对:  int   str   bool

  小数据池的作用:为了快速的创建字符串对象, 可以减少内存的浪费

  用缓存的前提:数据可以被共享。不可变.
2. 再谈编码
  ascii: 数字,字母, 特殊字符。
  字节: 8bit
  gbk: 国标码。16bit, 2byte

  unicode: 万国码。32bit, 4byte

  utf-8:可变长度的unicode
  英文: 1byte 8bit
  欧洲文字: 2byte,16bit
  中文: 3byte, 24bit

扫描二维码关注公众号,回复: 3706671 查看本文章

  python中的内存里使用的是unicode
  s = "你好啊"

  python2中用的是ascii  (输入中文要求:文件开头添加   # -*- encoding:utf-8 -*- )  python3用的是unicode  

    python3的内存中. 在程序运⾏阶段. 使⽤的是unicode编码. 因为unicode是万国码. 什么内

  容都可以进⾏显⽰. 那么在数据传输和存储的时候由于unicode比较浪费空间和资源. 需要把

  unicode转存成UTF-8或者GBK进⾏存储. 怎么转换呢. python中可以把⽂字信息进⾏编码.

  编码之后的内容就可以进⾏传输了. 编码之后的数据是bytes类型的数据.其实啊. 还是原来的

  数据只是经过编码之后表现形式发⽣了改变⽽已.

  字符串如果传输:encode(编码) 结果是bytes类型
  接受到bytes之后。 需要解码 :decode(编码). 结果是字符串

 

  记住下面的转化规则:

       编写代码类型(如: gbk, utf-8)   ---->  decode 解码 ------>  unicode (内存)

  unicode  ------->  encode 编码  ------>  我们需要的编码 (如:  gbk, utf-8)

---恢复内容结束---

猜你喜欢

转载自www.cnblogs.com/Knight-huang/p/9844089.html