小数据池

1. id()

通过id()可以查看到一个变量表示的值在内存中的地址

s = "Agoni"
print(id(s))
# 2410961093272

2. is 和 ==

== 判断左右两端的值是否相等,是不是一致

is 判断左右两端的内存地址是否一致,如果返回True 可以确定这两个变量使用的是同一个对象

在Python中,默认会把数字, 字符串, 布尔值进行缓存

1. 当我们在控制台时(CMD) #按照这个记

  • 数字: -5 ~ 256 之间的整数会被缓存

  • 字符串:

    1. 长度小于等于1,会默认缓存
    2. 长度大于1. 如果字符串中只有数字,字母,下划线缓存
    3. 用乘法得到的字符串:①乘数是1 , 仅包括数字,字母,下划线时会被缓存② 乘数不是1,最终长度不能超过20
  • 手动指定缓存

    from sys import intern    # intern  指定缓存内容
    a = intern("Agoni@.com")
    b = intern("Agoni@.com")
    print(a is b)
  • 布尔值

2. py文件里

​ py文件里,一个代码块内部, 只会缓存 int str bool .也有自己的小 数据池, 缓存范围回避外面的代码块的数据池大

1. 数字. 基本上都会缓存  运算结果不缓存( -5~256  会缓存)
  1. 字符串. 默认的字符串都缓存 如果有乘法 遵循上方的结论
  2. 布尔值. 默认缓存

再谈编码

在Python2里面 默认的编码是ASCII

在Python3中 UNICODE 是可以使用的, 默认用的就是UNICODE, 代码用UTF-8 来存储

  1. 编码? 把UNICODE 转换成UTF-8

    s = "未来可期"
    a = s.encode("UTF-8") # encode 之后的结果是bytes类型 依然是原来的字符串
    print(a) # 打印结果 b'数据'
    # b'\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x8f\xaf\xe6\x9c\x9f' \x 表示是16进制
  2. 解码

    a = b'\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x8f\xaf\xe6\x9c\x9f'
    s = a.decode("UTF-8")
    print(s)
    # 打印结果 未来可期

    GBK 不能用UTF-8 解码 , 必须用GBK解码 解码之后是UNICODE

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

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

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

  2. python基础之小数据池、代码块、编码和字节之间换算

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  3. python基础之小数据池,is和==区别 编码问题

    主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...

  4. python基础之小数据池、代码块、编码

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  5. python基础之小数据池

    一,id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: name = '太白' print(id(name)) # 158583128 ...

  6. Day6--Python--小数据池和再谈编码

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

  7. python之路--小数据池,再谈编码,is和 == 的区别

    一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...

  8. python中的 小数据池 is 和 ==

    1. 小数据池 一种数据缓存机制,也被称为驻留机制 小数据池针对的是:整数 , 字符 , 布尔值 .其他的数据类型不存在驻留机制 在python中对 -5 到256之间的整数会被驻留在内存中, 将一定 ...

  9. 百万年薪python之路 -- 小数据池和代码块

    1.小数据池和代码块 # 小数据池 -- 缓存机制(驻留机制) # == 判断两边内容是否相等 # a = 10 # b = 10 # print(a == b) # is 是 # a = 10 # ...

随机推荐

  1. 201621123016 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键字:接口,多态,Comparable,Comparator 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不 ...

  2. 使用js在html文档的任意位置输出内容

    <script type="text/javascript">document.write('这里是内容');</script>

  3. 五分钟了解Mecanim角色动画系统

    http://www.narkii.com/club/thread-305414-1.html Unity 4.0推出的Mecanim动画系统已经有一段时间,不过据了解很多的朋友仍然在使用原来的角色动 ...

  4. Django框架简介,wsgiref 与 jinja2 模块

    目录 框架简介 wsgiref模块 jinja2 模块 框架简介 Django是一个web开发框架,用来开发web应用,本质就是, web框架+socket服务端 MVC框架和MTV框架 MVC,全名 ...

  5. Trie树(小)总结 By cellur925

    关于\(Trie\)树的详细介绍,还请移步这篇深度好文 基本操作 插入 void insert() { int p=0; int len=strlen(tmp+1); for(int i=1;i< ...

  6. 结合 webpack 使用 vue-router(七)

    结合 webpack 使用 vue-router: 首先安装路由包vue-router: cnpm install vue-router 使用模块化工具导入 vue-router 后,必须手动调用 V ...

  7. bzoj3417:[POI2013]MOR-Tales of seafaring

    传送门 这个题比较水,很容易看出 1.最短路小于d,直接看奇偶性就好了 2,最短路大于d,puts("NIE\n"); 主要就是判奇偶性的问题,将每个点拆成奇点和偶点跑bfs就行了 ...

  8. 可以提升3倍开发效率的 Intellij IDEA快捷键大全汇总(2019)

    整理了一下IDEA的常用快捷键,可以打印出来或者弄成图片设置为桌面,为广大的程序员们节省更多的时间去谈恋爱. 常用快捷键1 Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式 ...

  9. [已读]高性能JavaScript

    值得多读几遍的书.

  10. Jquery测试纠错笔记

    一. 解析: 获取元素范围大小顺序依次为: $(#one).siblings("div")>$("#one~div")>$("#one + ...