一.小数据池
   参考
目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象
缓存: int, str, bool
int: 缓存范围 -5~256
str:
1. 长度小于等于1,直接缓存
2. 长度大于1. 字符串中如果只有数字, 字母, 下划线。 就会缓存
3. 乘以1。 同上, 乘以大于1的数。仅包含数字,字母下划线。最终长度小于等于20会缓存
4. 使用sys模块中的intern()缓存字符串 代码块的关系:如果在同一个代码块中。默认的整数和字符串还有布尔值都会进行缓存. 如果涉及计算。尊崇上面的规则
如果跨代码块,按照上面的规则执行的 内存地址 id() #对于赋值运算来说,指向的是一个内存地址,字典,列表,集合都一样.
a = 1000
print(id(a)) #内存的开辟是由解释器来完成的.
二. is 和 == 的区别
== 比较的是值 #双胞胎 == True
is 比较的是内存地址(是不是同一个地址) #双胞胎 is False lst1 = [1, 2, 3]
lst2 = [1, 2, 3]
print(lst1 == lst2)
print(lst1 is lst2) a = 'alex'
b = 'alex'
print(a == b)
print(a is b) #在python中,默认会把数字,字符串,布尔值进行缓存
只有不可变的对象才能缓存 1.当我们在控制台的时候(面试时只考在控制台cmd command 的情况)
1.int 数字及运算结果: -5~256之间的整数会被缓存
2.str 字符串:
长度小于等于1 会默认缓存
长度大于1 如果字符串中只有数字,字母,下划线 缓存
乘法得到的字符串,结果仅包含数字字母下划线最终长度不能超过20 缓存 手动指定缓存
from sys import intern()
intern() 指定缓存内容(必须是str,不能是int)
3.布尔值 2.py文件里,一个代码块内部,只会缓存int, str, bool 也有自己的小数据池,缓存的范围会比外面(控制台)的代码块的数据池要大
1.数字,都会缓存,运算结果在-5~256内缓存,超范围不缓存
2.字符串 默认的字符串(包括中文和符号)都缓存,如果有乘法,乘数为1缓存,乘数不为1遵循上方结论(数字,字母,下划,线个数)
3.布尔值 默认缓存 三.编码的补充 decode 和 encode
在python2中,默认的编码是ASCII
在python3中Unicode是可以使用的,默认用的就是Unicode,但代码用UTF-8来储存
1.为什么要编码. 把Unicode转换成UTF-8
#编码
s = '天气真好'
abc = s.encode('UTF -8') #encode 之后的结果是bytes类型,依然是原来的字符串
print(abc) # b'数据' 每个\x表示1个字节,1byte
#解码
abc = b'\xe5\xa4\xa9\xe6\xb0\x94\xe7\x9c\x9f\xe5\xa5\xbd'
s = abc.decode('UTF-8') #解码.用什么编码就用什么解码
print(s)
  # print(b'\xe5\xa4\xa9\xe6\xb0\x94\xe7\x9c\x9f\xe5\xa5\xbd'.decode('utf-8'))

        unicode => utf-8  encode("utf-8")
utf-8 => unicode decode("utf-8")
utf-8和gbk不能直接转换
bytes是字符串的另一种表示形式

Day6--Python--小数据池和再谈编码的更多相关文章

  1. Python基础篇 -- 小数据池和再谈编码

    小数据池 1. id() 通过id()可以查看到一个变量表示的值在内存中的地址 s = "Agoni" print(id(s)) # 2410961093272 2. is 和 = ...

  2. day 006 小数据池和再谈编码

    1.小数据池. 目的:缓存我们的字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存: int str bool int 范围:-5~256 str: 1.长度小于等于1,直接缓存 2.长度大 ...

  3. python 全栈开发,Day6(is,小数据池,编码转换)

    一.is a = 100 b = 100 print(a == b) print(a is b) 执行输出: TrueTrue 查看内存地址,使用id函数 print(id(a)) print(id( ...

  4. 小学生都能学会的python(小数据池)

    小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...

  5. python 小数据池,代码块, is == 深入剖析

    python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...

  6. Python小数据池,代码块

    今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析   一. id is == 二. 代码块 三. 小数据池 四. ...

  7. python -- 小数据池 is和 == 再谈编码

    1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...

  8. python小数据池 is和 == 再谈编码

    1. 小数据池, id() 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. id() 查看变量的内存地址 2. is和==的区别 is 比较的是内存地址 == ...

  9. 浅谈Python小数据池

    什么是小数据池 小数据池是python中提高效率的一种方式,固定数据类型的相同值使用同一内存地址. id 用于获取开辟空间的内存地址 代码块 一个文件,一个模块,一个函数,一个类,终端中的每一行代码都 ...

随机推荐

  1. WEX5中ajax跨域访问的几种方式

    1.使用jsonp方式 使用jsonp访问的话,前端需要把回调函数名传递给后端,后端执行完后也需要把回调函数传回给前端,默认情况下ajax自动生成一个回调函数名,后端可以通过String callba ...

  2. django学习自修第一天【简介】

    1. MVC框架 MVC框架的核心思想是解耦,降低各功能之间的耦合性,方便重构代码 (1)低耦合,高内聚 (2)高可扩展性 (3)向后兼容 2. MVT框架 V(视图):核心处理,接受请求,调用模型获 ...

  3. ERP系统的问题

    1.业务统计报表导出超时 2.库存统计相关接口查询容易导致慢查询,而且慢查询出现在主库上

  4. docker 列出每个容器的IP

    抄来的...找不到出处了.   常用方法有两种 docker inspect 容器ID | grep IPAddress 方法二 查看docker name: sudo docker inspect ...

  5. SQL Server 只安装客户端的方法

    只安装管理工具

  6. python易混易乱(2)

    字符串切割成列表: 以str为分隔符切片mystr,如果maxsplit有指定值,则仅分割maxsplit个字符串,得到maxsplit个字符串的列表 利用字符串的split() 方法 >> ...

  7. Tunnel Warfare(线段树取连续区间)

    emmmmmmmm我菜爆了 思路来自:https://blog.csdn.net/chudongfang2015/article/details/52133243 线段树最难的应该就是要维护什么东西 ...

  8. codeforces732C

    Sanatorium CodeForces - 732C Vasiliy spent his vacation in a sanatorium, came back and found that he ...

  9. html input 禁止输入中文

    <input type="text" class="tel" onkeyup="value=value.replace(/[\u4e00-\u9 ...

  10. mysql 下载地址

    新浪的镜像站 http://mirrors.sohu.com/mysql yum安装: 首先要到MySQL yum库的下载页面http://dev.mysql.com/downloads/repo/y ...