巨蟒python全栈开发-第6天 is==

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)



转载于:https://www.cnblogs.com/studybrother/p/10060489.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装mysql8._安装MySQL8(附详细图文)

安装MySQL8(附详细图文)删除mysql服务:mysqld -remove mysql1、下载 mysql 8下载地址:https://dev.mysql.com/downloads/mysql/2、配置 mysql 配置文件打开 mysql 8 的安装目录:my.ini注意设置自己对应的 mysql 安装目录 和数据存放目录[mysq…

win10安装windows live writer 错误:OnCatalogResult:0x80190194

到官网下载了一个在线安装程序,可是一运行就提示无法安装,显式错误“OnCatalogResult:0x80190194”,如下图所示 找到windows live安装程序的安装日志文件。具体位置是:C:\Users\All Users\Microsoft\WLSetup\Logs 需要下载安装文件…

C# 实现一个可取消的多线程操作 示例

private void button1_Click(object sender, EventArgs e){//定义一个为可取消资源标志CancellationTokenSource cts new CancellationTokenSource();//定义二个为可取消资源标志CancellationTokenSource cts1 new CancellationTokenSource();//实现一个可取消操作的回调函数…

这些工具将提高您的Android生产率

by Michal Bialas由Michal Bialas 这些工具将提高您的Android生产率 (These tools will boost your Android productivity) The main purpose of this post is to list and describe tools (mainly free ones), which allow you to boost your productivity, efficiency, and …

python四位玫瑰数的解题思路_入门python知识点总结以及15道题的解题思路分析

知识点总结python1、序列app操做符idex in s 若是x是列表s的元素,返回True,不然Falses t 链接两个序列s和ts*n或者n*s 将序列s复制n次s[i] 返回s中第i元素s[i:j]或s[i:j: k] 切片,返回序列s中第i到j-1以k为步长的元素子序列函数函数len(s) 返…

TZOJ--5480: 孤衾易暖 // POJ--3735 Training little cats (矩阵快速幂)

5480: 孤衾易暖 时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte 描述 哇,好难,我要放弃了(扶我起来,我还能A 寒夜纵长,孤衾易暖,钟鼓渐清圆。 生活也许有些不如意的地方,但是没有什么是拥有一…

IntelliJ IDEA2017 修改缓存文件的路径

IDEA的缓存文件夹.IntelliJIdea2017.1,存放着IDEA的破解密码,各个项目的缓存,默认是在C盘的用户目录下,目前有1.5G大小。现在想要把它从C盘移出。 在IDEA的安装路径下中,进入bin目录后找到属性文件:idea.pr…

解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位...

$(function () {//解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位var u navigator.userAgent;var isiOS !!u.match(/\(i[^;];( U;)? CPU.Mac OS X/); //ios终端if (isiOS true) {var pageHeight window.innerHeight;$(&quo…

aws cognito_AWS Cognito的用户管理—(2/3)核心功能

aws cognitoby Kangze Huang黄康泽 AWS Cognito的用户管理—(2/3)核心功能 (User Management with AWS Cognito — (2/3) The Core Functionality) 完整的AWS Web样板-教程1B (The Complete AWS Web Boilerplate — Tutorial 1B) Main Table of Contents Click Here主要目录请…

python字符串后面添加字符串_什么是字符串?怎样在Python中添加字符串?

字符串是一种表示文本的数据类型,字符串中的字符可以是ASCII字符、各种符号以及各种Unicode字符。Python中的字符串有如下三种表现方式。第1种方式:使用单引号包含字符。示例代码如下:a 123注意,单引号表示的字符串里不能包含单引…

surround360

1.读入配置文件2.创建底部和顶部投影线程3.将侧面图投影到球座标(1)load侧面相机图像(2)创建投影线程(3)等待线程结束4.渲染立体全景图(侧边)(1)计算重叠区域宽度(2)创建准备生成新视图的线程: 送入相邻两个相机的投影图,计算光流flowLtoR,flowRtoL, 保存在novelViewGenerators…

snapchat_我刚刚在Snapchat获得开发人员职位。

snapchatby Jon Deng乔恩邓 我刚刚在Snapchat获得开发人员职位。 这是我学到的东西,以及它如何帮助您进行求职。 (I just got a developer job at Snapchat. Here’s what I learned and how it can help you with your job search.) About a year ago, while depl…

sys.argv

import sysi0 print len(sys.argv) while i < len(sys.argv):print sys.argv[%d]:%s %(i,sys.argv[i])i i1 import sysprint len(sys.argv) for i in range(len(sys.argv)):print sys.argv[%d]:%s %(i,sys.argv[i]) 执行 结果 &#xff1a;E:\MyScript>python sysargs.py…

Docker安装java-Zookeeper进行操作

Docker安装Zookeeper下载Zookeeper镜像 docker pull zookeeper启动容器并添加映射 docker run --privilegedtrue -d --name zookeeper --publish 2181:2181 -d zookeeper:latest 查看容器是否启动 docker ps idea提供了一个Zookeeper插件&#xff0c;以供连接Zookeeper服务中心…

java反射获取注解_Java自定义注解和运行时靠反射获取注解

java自定义注解Java注解是附加在代码中的一些元信息&#xff0c;用于一些工具在编译、运行时进行解析和使用&#xff0c;起到说明、配置的功能。注解不会也不能影响代码的实际逻辑&#xff0c;仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解…

进程间的通讯(IPC)方式

内存映射 为什么要进行进程间的通讯(IPC (Inter-process communication)) 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程&#xff0c;发送的数据量在一个字节到几M字节之间共享数据&#xff1a;多个进程想要操作共享数据&#xff0c;一个进程对共享数据的修改&a…

开发人员避免编写测试的2个最常见原因

This post was originally published on Medium这篇文章最初发表于Medium Writing tests represents one of those few stages of software development that is usually overlooked, even though it may be one of the most important one. Developers mention it and usuall…

java ews_Java---使用EWS 写个ExchangeMailUtil

依赖包&#xff1a;commons-httpclient-3.1.jarcommons-codec-1.10.jarcommons-logging-1.2.jarjcifs-1.3.17.jar代码示例&#xff1a;创建MailBean类&#xff1a;import java.util.Date;public class MailBean {public BigDecimal getId() {return id;}public void setId(BigD…

Ilya Muromets(DP or 思维)

Ilya Muromets Gym - 100513F Силачом слыву недаром — семерых одним ударом!From the Russian cartoon on the German fairy tale.Ilya Muromets is a legendary bogatyr. Right now he is struggling against Zmej Gorynych, a drago…

C# 装箱和拆箱

C#的值类型可以分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型。 1、那么值类型和引用类型能否相互转换呢? 答案是肯定的,C#通过装箱和拆箱来实现两者的相互转换。 (1)、装箱 ---把值类型强制转换成引用类型(object类型) (2)、拆箱 ---把引用类型强制转换成值…