网站建设在哪里接单,英文网站群建设,seo分析网站,网站主页没有关键词1.小数据池 2.id 3.decode和encode 小数据池 #小数据池:不要死磕就行#python为了简化,搞出来的一个东西ID (1)# id()函数可以帮我们查看一个变量的内存地址# a10# b30# c10# print(id(a)) #1712876864# print(id(b)) #1712877504# print(id(c)) #1712876864(2)# lst[周…1.小数据池 2.id 3.decode和encode 小数据池 #小数据池:不要死磕就行#python为了简化,搞出来的一个东西ID (1)# id()函数可以帮我们查看一个变量的内存地址# a10# b30# c10# 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)) #1845106652680print(id(lst2)) #1845106652552(5)#pythonjava等等最慢的事情是:创建对象 作用:显著提高程序的运行效率 #随着时间的提升,内存会不断被消耗s1abc #内存中是没有abc,创建一个新的 0.001s2abc #内存中已经有了abc,直接把abc拿来用 0.00000001print(id(s1),id(s2)) #1351674474712 1351674474712#程序中出现最高的数据类型:字符串,为了能够快速的创建字符串#节省内存,把相同的规律的字符串进行缓存,当下次创建的时候就不再创建了#把字符串的缓存 -小数据池-String iterning -常量池-字符串缓存#其他语言:常量池,字符串缓存#在创建字符串之前,先去小数据池对比,是否已经存在了该字符串,如果存在了.#就不创建新的了,直接拿原来存在的数据,省略掉反复重复创建字符串的过程,节省内存(6)#小数据池只针对:数字,字符串,布尔值# 什么数据会被缓存#数字字符串布尔值》 都是不可变的数据类型因为他会被很多人使用#有缓存和驻留机制#基本数据类型int bool str list tuple dic set1.#数字a1000b1000print(id(a),id(b)) #2811993566928 2811993566928#在CMD显示不一样 -5-256#在pycharm是显示一样的2.#字符串,如果单纯的写字符串,几乎都会被缓存s1alex昨天上厕所没关门,韩红冲进去了,风扇个出来了,alex昨天上厕所没关门,韩红冲进去了,风扇个出来了s2alex昨天上厕所没关门,韩红冲进去了,风扇个出来了,alex昨天上厕所没关门,韩红冲进去了,风扇个出来了print(id(s1),id(s2)) #2793562660912 2793562660912如果在py文件中写的字符串,几乎都是缓存的在黑窗口里写的几乎都不会缓存#不同的解释器,缓存的机制也不一样# 优点:可以帮助我们快速的创建对象,节省内存# 缺点:缓存如果过大,响应速度会比较慢#但是我们 不要纠结# 和 is硬盘: 80MB/S(数据库)内存: 缓冲的作用 2G/SCPU: 3Ghz (应用)#内存很满很满时,会直接找硬盘,也就是硬盘中的内存机制#百万并发:90万人在等待#中间机制:中间加上缓存,现在的就是缓存#短期内不改的,就放在小数据池内,京东的页面#每天缓存一份,但是价格不缓存(7)#(判断内容)和 is(判断内存地址) 的区别# 比较的是数据,外貌#is 比较的是内存地址,比较身份证号lst1[1,2,3]lst2[1,2,3]#列表没有小数据池print(id(lst1),id(lst2)) #2231123785096 2231123785224#并且每次的运行结果都不一样print(lst1lst2) #Trueprint(lst1 is lst2) #Falses1我叫周润发s2我叫周润发print(s1s2) #True#print(s1 is s2) #True #小数据池tu1(周一,周二)tu2(周一,周二)print(tu1 is tu2) #False 内存地址不相同print(tu1 tu2) #True 内容一样3.decode和encode (1)s我今天非常的困bss.encode(utf-8) #把字符串转化成utf-8格式bytesprint(bs)#bytes不是给人看的,给机器用的#21个字节# b\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0bss.encode(gbk) #把字符串转化成utf-8格式bytesprint(bs)#b\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7#utf-8和gbk是不能直接转换的,必须使用unicode来转换(2)bsb\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7sbs.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\xb0ssb.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\xb0gbsb.decode(utf-8) #解码gbk_1gb.encode(gbk) #编码print(gbk_1)# 关于bytes非ascii中的内容,展示的是\x..,如果是ascii中的内容,原样输出# namealex昨天吃多了# bsname.encode(gbk)# print(bs)namealex昨天吃多了bsname.encode(GBK)print(bs) 转载于:https://www.cnblogs.com/studybrother/p/10060489.html