---恢复内容开始---
今日主要内容
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
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)
---恢复内容结束---