1.小数据池

2.id

3.decode和encode

小数据池

#小数据池:不要死磕就行
#python为了简化,搞出来的一个东西 ID
(1)
# id()函数可以帮我们查看一个变量的内存地址
# a=10
# b=30
# c=10
# print(id(a)) #1712876864
# print(id(b)) #1712877504
# print(id(c)) #1712876864 (2)
# lst=['周杰伦','麻花藤']
# print(id(lst)) #1248606696968
# lst.append('胡辣汤')
# print(id(lst)) #1248606696968 #你哥还是你哥,你的包还是你的包
#在这个过程中,始终还是那个那个包
(3)
# lst=['周杰伦','麻花藤']
# print(id(lst)) #2415882876424
# lst=[] #重新定义一个列表
# lst.append('胡辣汤')
# print(id(lst)) #2415882876296
#
(4)#两个对象的内存地址是不一样的
'''
lst1=[1,2,3]
lst2=[1,2,3]
print(id(lst1)) #1845106652680
print(id(lst2)) #1845106652552
'''
(5)#python&java等等最慢的事情是:创建对象 作用:显著提高程序的运行效率
#随着时间的提升,内存会不断被消耗
'''
s1='abc' #内存中是没有'abc,创建一个新的 0.001
s2='abc' #内存中已经有了'abc',直接把abc拿来用 0.00000001
print(id(s1),id(s2)) #1351674474712 1351674474712
'''
#程序中出现最高的数据类型:字符串,为了能够快速的创建字符串
#节省内存,把相同的规律的字符串进行缓存,当下次创建的时候就不再创建了
#把字符串的缓存 ->小数据池->String iterning ->常量池->字符串缓存 #其他语言:常量池,字符串缓存 #在创建字符串之前,先去小数据池对比,是否已经存在了该字符串,如果存在了.
#就不创建新的了,直接拿原来存在的数据,省略掉反复重复创建字符串的过程,节省内存 (6)#小数据池只针对:数字,字符串,布尔值
# 什么数据会被缓存?
#数字,字符串,布尔值=》 都是不可变的数据类型(因为他会被很多人使用)
#有缓存和驻留机制 #基本数据类型:int bool str list tuple dic set 1.#数字
'''
a=1000
b=1000
print(id(a),id(b)) #2811993566928 2811993566928
'''
#在CMD显示不一样 -5-256
#在pycharm是显示一样的 2.#字符串,如果单纯的写字符串,几乎都会被缓存
'''
s1='alex昨天上厕所没关门,韩红冲进去了,风扇个出来了,alex昨天上厕所没关门,韩红冲进去了,风扇个出来了'
s2='alex昨天上厕所没关门,韩红冲进去了,风扇个出来了,alex昨天上厕所没关门,韩红冲进去了,风扇个出来了'
print(id(s1),id(s2)) #2793562660912 2793562660912
'''
'''
如果在py文件中写的字符串,几乎都是缓存的
在黑窗口里写的几乎都不会缓存
#不同的解释器,缓存的机制也不一样 # 优点:可以帮助我们快速的创建对象,节省内存
# 缺点:缓存如果过大,响应速度会比较慢
#但是我们 "不要纠结"
''' # ==和 is
'''
硬盘: 80MB/S(数据库)
内存: 缓冲的作用 2G/S
CPU: 3Ghz (应用) #内存很满很满时,会直接找硬盘,也就是硬盘中的内存机制 #百万并发:90万人在等待
#中间机制:中间加上缓存,现在的就是缓存 #短期内不改的,就放在小数据池内,京东的页面
#每天缓存一份,但是价格不缓存
''' (7)#==(判断内容)和 is(判断内存地址) 的区别
#== 比较的是数据,外貌
#is 比较的是内存地址,比较身份证号 '''
lst1=[1,2,3]
lst2=[1,2,3]
#列表没有小数据池
print(id(lst1),id(lst2)) #2231123785096 2231123785224#并且每次的运行结果都不一样
print(lst1==lst2) #True
print(lst1 is lst2) #False s1='我叫周润发'
s2='我叫周润发'
print(s1==s2) #True
#print(s1 is s2) #True #小数据池 tu1=('周一','周二')
tu2=('周一','周二')
print(tu1 is tu2) #False 内存地址不相同
print(tu1 == tu2) #True 内容一样
''' 3.decode和encode
(1)
'''
s='我今天非常的困'
bs=s.encode('utf-8') #把字符串转化成utf-8格式bytes
print(bs)
#bytes不是给人看的,给机器用的
#21个字节
# b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0' bs=s.encode('gbk') #把字符串转化成utf-8格式bytes
print(bs)
#b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7' #utf-8和gbk是不能直接转换的,必须使用unicode来转换
''' (2)
'''
bs=b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7'
s=bs.decode('gbk')
print(s) sb = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
s=sb.decode('utf-8')
print(s)
#爬虫中,在网站上,有的用的是GBK,有的就是utf-8
''' #练习
'''
sb = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
gb=sb.decode('utf-8') #解码
gbk_1=gb.encode('gbk') #编码
print(gbk_1)
''' # 关于bytes,非ascii中的内容,展示的是\x..,如果是ascii中的内容,原样输出
# name='alex昨天吃多了'
# bs=name.encode('gbk')
# print(bs) name='alex昨天吃多了'
bs=name.encode('GBK')
print(bs)

巨蟒python全栈开发-第6天 is&==的更多相关文章

  1. 巨蟒python全栈开发linux之centos1

    1.linux服务器介绍 2.linux介绍 3.linux命令学习 linux默认有一个超级用户root,就是linux的皇帝 注意:我的用户名是s18,密码是centos 我们输入密码,点击解锁( ...

  2. 巨蟒python全栈开发-第20天 核能来袭-约束 异常处理 MD5 日志处理

    一.今日主要内容 1.类的约束(对下面人的代码进行限制;项目经理的必备技能,要想走的长远) (1)写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError(重点) (2)抽象 ...

  3. 巨蟒python全栈开发linux之centos6

    1.nginx复习 .nginx是什么 nginx是支持反向代理,负载均衡,且可以实现web服务器的软件 在129服务器中查看,我们使用的是淘宝提供的tengine,也是一种nginx服务器 我们下载 ...

  4. 巨蟒python全栈开发linux之centos3

    1.作业讲解 (1)递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng} 下面中的路径没有必要换,在哪里创建都行,根目录下或者tmp目录下或者其 ...

  5. 巨蟒python全栈开发django5:组件&&CBV&FBV&&装饰器&&ORM增删改查

    内容回顾: 补充反向解析 Html:{% url ‘别名’ 参数 %} Views:reverse(‘别名’,args=(参数,)) 模板渲染 变量 {{ 变量名 }} 逻辑相关 {% %} 过滤器: ...

  6. 巨蟒python全栈开发-第11阶段 ansible_project2

    一个NB的网站: https://www.toolfk.com/ CDN:将用户的需求送到最近的节点:内容分发网络 有些是专门做CDN的工具 常用的markdown是需要知道的,短信有字数限制. we ...

  7. 巨蟒python全栈开发-第4天 列表&元组&range

    今日内容大纲 1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操 ...

  8. 巨蟒python全栈开发-第13天 内置函数 匿名函数lambda

    一.今日内容总览 1.内置函数(1):并不是每一个内置函数都是那么常用 上菜:内置函数部分//思维导图:https://www.processon.com/view/link/5b4ee15be4b0 ...

  9. 巨蟒python全栈开发-第14天 内置函数2 递归 二分查找

    一.今日内容总览 1.内置函数补充 repr() 显示出字符串的官方表示形式 chr() arscii码中的字,转换成位置 ord() arscii码中的位置,转换成字2.递归 自己调用自己 两个口: ...

  10. 巨蟒python全栈开发-第15天 装饰器

    一.今日内容总览 关于函数的装饰器1.装饰器(重点,难点)(要求:反复写,代码不多但是很绕) 开闭原则:(比如,菜单是拆散的,一点点搞的,用友拆散自己的功能,以后就不用开发了) (1)对功能的扩展开放 ...

随机推荐

  1. C++ Primer笔记6_STL之泛型算法

    1.泛型算法: 大多数算法定义在头文件algorithm中.标准库还在头文件numeric中定义了一组数值泛型算法 仅仅读算法: 举例: find函数用于找出容器中一个特定的值,有三个參数 int v ...

  2. python 特征缺失值填充

    python数据预处理之缺失值简单处理:https://blog.csdn.net/Amy_mm/article/details/79799629 该博客总结比较详细,感谢博主. 我们在进行模型训练时 ...

  3. laravel文件存储Storage

    use Illuminate\Support\Facades\Storage; //建立目录 Storage::disk('public')->makeDirectory(date('Y-m') ...

  4. jquery的onclick(this)方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. unity, 3dmax制作的morph(blendshape)导入unity中使用注意事项

    在实现<乱纪元大冒险>(见:http://www.cnblogs.com/wantnon/p/4857072.html)中由于质子展开失败形成的变形几何体和眼睛.几何体经过一系列形变最后变 ...

  6. C#.NET中使用BackgroundWorker在模态对话框中显示进度条

    这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collect ...

  7. 通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务

    管理 Linux 自启动进程 Linux 系统的启动程序包括多个阶段,每个阶段由一个不同的图示块表示.下面的图示简要总结了启动过程以及所有包括的主要组件. Linux 启动过程 当你按下你机器上的电源 ...

  8. RIP协议两个版本对不连续子网的支持情况实验

    一.连续子网与不连续子网 我们经常见到说RIPv1不支持不连续子网,仅支持连续子网,那么什么是连续子网,什么是不连续子网呢? l  不连续子网:指在一个网络中,某几个连续由同一主网划分的子网在中间被多 ...

  9. 自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop

    支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语. 主要是得自己查看支付宝官方提供的SDK中的开发文档. 支付宝sdk下载地址:https://doc.open.alipay ...

  10. HTML中让表单input等文本框为只读不可编辑但可以获取value值的方法;让文本域前面的内容显示在左上角,居中

      HTML中让表单input等文本框为只读不可编辑的方法 有时候,我们希望表单中的文本框是只读的,让用户不能修改其中的信息,如使input text的内容,中国两个字不可以修改   有时候,我们希望 ...