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. python-嵌套循环(Nested loop)-久久乘法表

    嵌套-久久乘法 for i in range(1,10): for j in range(1,10): print('{} × {} = {}'.format(i,j,i*j))最外层的循环依次将数值 ...

  2. jQuery国际化插件 jQuery.i18n.properties 【轻量级】

    jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化. 国际化英文单词为:Internationalization,又称i18n,“i”为单词的第 ...

  3. mysql产生随机数并连接字符串

    concat('a','b','c');//连接字符串 rand();//产生随机数 floor();//取整数 UPDATE user set reg_ip= concat(floor(RAND() ...

  4. C语言 fork

    /* *@author cody *@date 2014-08-12 *@description */ /* #include <sys/types.h> #include <uni ...

  5. FPGA开发流程1(详述每一环节的物理含义和实现目标)

    要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...

  6. 491. Palindrome Number【easy】

    Check a positive number is a palindrome or not. A palindrome number is that if you reverse the whole ...

  7. 《The Joy of X》

    来到园子已经几个月了,平时也就看看新闻.招聘信息,偶尔也会看看技术文章.作为一名非计算机专业的学生,我深深地被技术的魅力所吸引.就在半个多月前,我开通了自己的博客,以便记录自己的成长经历,也能与园子里 ...

  8. OSI七层模型与TCP/IP五层模型详解

    博主是搞是个FPGA的,一直没有真正的研究过以太网相关的技术,现在终于能静下心学习一下,希望自己能更深入的掌握这项最基本的通信接口技术.下面就开始搞了.   一.OSI参考模型         今天我 ...

  9. CSRF学习笔记之CSRF的防御【00x4】

    referer 验证 根据HTTP协议,在http请求头中包含一个referer的字段,这个字段记录了该http请求的原地址.通常情况下,执行转账操作的post请求www.bank.com/trans ...

  10. jsp时间格式化

    <fmt:formatDate value="${start.time }" pattern="HH:mm" />