python-小数据池 and 编码
# id()函数可以帮我们查看一个变量的内存地址
# a = 10
# b = 30
# print(id(a)) # 1515545088
# print(id(b)) # 1515545728
# lst = ['周杰伦', "麻花藤"]
# print(id(lst)) # 166167624
# print(lst)
# lst = [] # 创建了一个新列表
# lst.append("胡辣汤")
# print(id(lst)) # 166167624
# print(lst)
# lst1 = [1,2,3] # 两个对象 内存地址是不一样的
# lst2 = [1,2,3]
# print(id(lst1)) # 166167624
# print(id(lst2)) # 166122376
# s1 = "abc" # 内存中是没有"abc", 创建一个新的 0.0001
# s2 = "abc" # 内存中是已经有了"abc", 直接把abc拿来用 0.0000001
# print(id(s1), id(s2)) # 31096032 31096032
# 视频频率最高的数据类型: 字符串,为了能够快速的创建字符串.
# 节省内存. 把相同的规律的字符串进行缓存,当下次创建的时候就不在创建了
# 把字符串的缓存-> 小数据池 -> String iterning -> 常量池 -> 字符串缓存
# 在创建字符串之前. 先去小数据池对比. 是否已经存在了该字符串.如果存在了.
# 就不创建新的了. 直接拿原来存在的数据, 省略掉反复重复创建字符串的过程. 节约内存
# 什么数据会被缓存
# 数字, 字符串, 布尔值 => 都是不可变的数据类型
# 1. 数字
# a = 1000
# b = 1000
# print(id(a), id(b)) # 165830000 165830000
# 2. 字符串. 如果单纯的写字符串. 几乎都会被缓存
# s1 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
# s2 = "alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事alex昨天上厕所没关门. 韩红冲进去了. 面筋歌出来了. 有故事"
#
# print(id(s1), id(s2)) # 31222064 31222064
# 如果在py文件中写的字符串. 几乎都是缓存的
# 在黑窗口里的写的几乎都不会缓存
# 不同的解释器. 缓存的机制也不一样
# 优点: 可以帮我们快速的创建对象.节省内存.
# 缺点: 缓存如果过大. 响应速度会比较慢
# 不要纠结.
# == 和 is 区别:
# == 比较的是数据, 外贸
# is 比较的是内存地址, 比较身份证号
# lst1 = [1,2,3]
# lst2 = [1,2,3]
# # 列表没有小数据池
# print(id(lst1), id(lst2)) # 166167560 166126408
# print(lst1 == lst2) # True
# print(lst1 is lst2) # False
#
# s1 = "我叫周润发"
# s2 = "我叫周润发"
# print(s1 == s2)
# print(s1 is s2) # 小数据池
# tu1 = ("周一", "周二")
# tu2 = ("周一", "周二")
# print(tu1 is tu2) # 地址不相等 False
# print(tu1 == tu2) # 内容相等 True
# == 比较的是内容 *
# is 比较内存地址 *
# s = "我今天非常的困" # 21个utf-8
# bs = s.encode("gbk") # 把字符串转化成utf-8格式bytes
# # bytes不是给人看的. 给机器用的 *
# # 14个字节 gbk
# # b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7'
# # 21个字节 utf-8
# # b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# print(bs)
# utf-8和gbk是不能直接转换的, 必须使用unicode来转换 *
# bs = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# # 把字节转化回字符串
# s = bs.decode("utf-8")
# print(s)
# b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# 把这个bytes转化成gbk的bytes
# bs = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
# # 解码
# s = bs.decode("utf-8")
# print(s)
#
# # 编码
# bss = s.encode("gbk")
# print(bss)
# 关于bytes, 非ascii中的内容. 展示的时候都是\x.. 如果是ascii中的内容. 原样输出
# name = "alex昨天吃多了"
# bs = name.encode("gbk") # b'alex\xd7\xf2\xcc\xec\xb3\xd4\xb6\xe0\xc1\xcb'
# print(bs)
#
# bss = name.encode("utf-8") # b'alex\xe6\x98\xa8\xe5\xa4\xa9\xe5\x90\x83\xe5\xa4\x9a\xe4\xba\x86'
# print(bss)
python-小数据池 and 编码的更多相关文章
- python学习笔记:第6天 小数据池和编码转换
目录 1. id 和 == 2. 小数据池 3. 编码和解码 1. id 和 == id:id是一个内置的函数,可以查看变量存放的内存地址(实际上不是真正的物理地址,这里暂时这样理解),用于判断是变量 ...
- 小学生都能学会的python(小数据池)
小学生都能学会的python(小数据池) 1. 小数据池. 目的:缓存我们字符串,整数,布尔值.在使用的时候不需要创建过多的对象 缓存:int, str, bool. int: 缓存范围 -5~256 ...
- Python小数据池,代码块
今日内容一些小的干货 一. id is == 二. 代码块 三. 小数据池 四. 总结 python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. ...
- python 小数据池,代码块, is == 深入剖析
python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...
- python -- 小数据池 is和 == 再谈编码
1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...
- python 浅谈小数据池和编码
⼀. ⼩数据池 在说⼩数据池之前. 我们先看⼀个概念. 什么是代码块: 根据提示我们从官⽅⽂档找到了这样的说法: A Python program is constructed from code b ...
- 《Python》 代码块、小数据池和编码转换
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 什么是代码块:一个py文件,一个函数,一个文件,一个类都是一个代码块. 作为交互方式输入的每一行 ...
- python 小数据池 is和 == 编码解码
########################总结######################### 今日主要内容 1. 小数据池, id() 小数据池针对的是: int, str, bool 在p ...
- python:id与小数据池与编码
一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相 ...
- python基础4(小数据池,编码,深浅拷贝)
1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num ...
随机推荐
- lua --- 函数的可变参数
主要掌握: 1>虚变量 --- 一个下划线 2>lua将函数的可变参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域n表示参数的个数. do function fun(x, ...
- 第 8 章 容器网络 - 060 - 在 Docker 中使用 flannel
在 Docker 中使用 flannel 编辑 host1 的 Docker 配置文件 /etc/systemd/system/docker.service.d/10-machine.conf 设置 ...
- Python Web简单加法器的实现--Python
坚持写博客来记录学习过程,哪怕学习的东西多么简单!下面是python中cgi相关知识. Template.py:(模板引擎文件) #模板引擎def start_response(resp=" ...
- confirm提示弹出确定和取消按钮
js----> var con = confirm('这是一个确定加取消的提示窗口') if(con==true){ document.write("点击了确定按钮") }e ...
- php中安装memcache
1.查看php的版本(我的是5.6) 2.打开phpinfo查看第四行 3.然后选择要安装的文件 4.复制到 ext中 复制后 5.打开配置文件php.ini 把 extension=php_memc ...
- 4.1.2 A Funny Game(POJ 2484)
Problem description: n枚硬币排成一个圈,A和B轮流从中取一枚或两枚硬币,不过取两枚时,所取的两枚硬币必须是连续的.硬币取走之后留下空位,相隔空位的硬币视为不连续的.A开始先取,取 ...
- Dynamic Shortest Path CodeForces - 843D (动态最短路)
大意: n结点有向有权图, m个操作, 增加若干边的权重或询问源点为1的单源最短路. 本题一个特殊点在于每次只增加边权, 并且边权增加值很小, 询问量也很小. 我们可以用johnson的思想, 转化为 ...
- D - Power Tower欧拉降幂公式
题意:给你一个数组a,q次查询,每次l,r,要求 \(a_{l}^{a_{l+1}}^{a_{l+2}}...{a_r}\) 题解:由欧拉降幂可知,最多log次eu(m)肯定变1,那么直接暴力即可,还 ...
- centos7 mysql+MHA高可用安装
https://dzone.com/articles/consul-proxysql-and-mysql-ha?utm_medium=feed&utm_source=feedpress.me& ...
- swf 上传
推荐这个博客:http://blog.csdn.net/hi_kevin/article/details/23430345 这个文章很不错,我推荐这个文章:http://leeon.me/upload ...