四.小数据池,深浅拷贝,集合+菜中菜 1小数据池 --缓存机制(驻留机制) ​ '==' 判断两边内容是否相等 ​ 'is' 基于内存地址进行判断是否相同 a = 10 b = 10 print(a == b ) #is print(a is b) 小数据池的数字范围: -5 ~256 a = -5 b = -5 c = -5 print(id(a)) print(id(b)) print(id(c)) #<-5不行 a = -6 b = -6 print(id(a)) print(id(b))…
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文件, 一个模块, 一个函数 ,一个类,一个终端的每一行就是代码块 ​ 代码块的关系:如果在同一个代码块中,默认的整数和字符串还有布尔值都会进行缓存 #在python中是用字典的方式存储 a=1 b=1 print(globals()) #函数会以字典类型返回当前位置的全部全局变量. 驻留机制: in…
1.小数据池: 1.1代码块: 一个文件,一个函数,一个类,一个模块,终端中每一行 1.1.1 数字: -5 ~ 256 1.1.2 字符串: 乘法时总长度不能超过20 1.1.3 布尔值: 内容相同内存地址相同 1.2 小数据池: 1.2.1 数字: -5 ~ 256 1.2.2 字符串: 乘法时总长度不能超过20 1.2.3 布尔值: 内容相同内存地址相同 1.3 先执行代码块后执行小数据池 1.4 == is 1.4.1 == 判断等号两边值是否相等 1.4.2 is 判断两边的值内存地址…
1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num1 = 3 num2 = 3 i1 = id(num1) i2 = id(num2) #此时i1==i2 3.编码 ascii:     8位       1字节     表示一个字符 unicode:  32位     4字节     表示一个字符 utf-8 英文    8位    1字节 欧洲…
Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意类型的数据 (32位机器能存5亿多,64为机器存储更多) 特点: 可变 (增,删,改,查) 默认从左到右 ,从0开始 . 有序(索引,切片,步长) 操作: 增 , 删 , 改 ,查 ,索引,切片,步长…
小数据池就是在内存中已经开辟了一些特定的数据,经一些变量名直接指向这个内存,多个变量间公用一个内存的数据. int: -5 ~ 256 范围之内 str: 满足一定得规则的字符串. 小数据池: 1,节省空间.2,提高性能 深浅copy 赋值运算 l1 = [, , ]] l2 = l1 #l2就是l1 l1是什么,l2就是什么 l1.append('qqfc') l1[-].append('heihei') print(l1) print(l2) [, , , 'heihei'], 'qqfc'…
一,什么是代码块. 根据官网提示我们可以获知: 根据提示我们从官方文档找到了这样的说法: A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are blocks: a module, a function body, and a class definition. Each com…
id和is 在介绍代码块之前,先介绍两个方法:id和is,来看一段代码 # name = "Rose" # name1 = "Rose" # print(id(name)) # print(id(name1)) # 两个id相同 # print(name == name1) # True # print(name is name1) # True 执行结果 2257847297000 2257847297000 True True Process finished…
代码块: python真正的代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 但是,在python终端交互模式下,每一条代码都是一个代码块 python在同一个代码块中的变量,初始化对象的命令时,它会将变量与值的对应关系放到一个字典中, 如果下面的代码在遇到初始化对象的命令,他会先从字典中寻找,如果存在相同的值,他会复用,指向的都是同一个内存地址. >>> i1 = 1000 可以理解为这一行在一个文件中. >>> i2 = 1000 可以理解为这一行在另…
一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相同 小数据池 小数据:数字:-5 ~ 256 为了节省空间字符串:1.如果含有特殊字符,不存在小数据池 其他都不存在小数据池. 二.编码 1.编码之间的二进制互不识别 2.存储和传输010101,但不能是unicode的010101 python3x中的编码 python3x中str在内存中的编码方…
二十二.小数据池, id()    进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存.   在cmd命令窗口中几乎都不会缓存   不同的解释器有不同的机制 3.id() 查看变量的内存地址 4. is和==的区别 is 比较的是内存地址 == 比较的是内容 当两个变量指向同一个对象的时候. is是True, ==也是True 5. 优点:快速创建对象,节省内存 缺点:缓存如果过大,影响速度会比较慢 二十三. 再谈编码 回顾: 1. asci…
编码拓展: 1.在所有类型的编码中,编码的二进制互不识别, 2.在传输的过程中不能是万国码的二进制解码传输, 因此将unicode变为utf - 8或者变成gbk编码尤为重要; 利用encode编码为utf - 8或者gbk 或者decode解码 s = '中国' print(s.encode('utf-8')) #结果:b'\xe4\xb8\xad\xe5\x9b\xbd' #将utf-8 转换为gbk先要转换为unicod s = 'alex' s1 = s.encode('utf-8')…
函数是重用的程序段.它们允许你给一块语句一个名称, 然后你可以在你的程序的任何地方使用这个名称多次地运行这个语句块.这被成为调用函数.我们已经使用了许多内建的函数,比如len和range. 函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. def sayHello(): print 'hello world' sayHello() print 'haha','good' 事实上我们可以在…
Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型),必须是唯一的 ​ 值: 任意数据类型 特点: ​ 查询的效率非常高,通过key来查找元素 #典型的空间换时间的案例: 虽然查询速度高效,但是占内存大 ​ 内部使用key来计算一个内存地址(暂时), hash算法,key必须是不可变的数据类型(key 必须是可哈希的数据类型),key必须是不可变的…
昨日回顾 上节课内容回顾 1. 字典 {key:value, key:value.....} 成对的保存数据 字典没有索引. 不能切片, 字典的key必须是可哈希的.不可变的 1. 增加: dic[新key] = 值 dic.setdefault(key, value) 新增, 查询 2. 修改: dic[老key] = 值 dic.update(d) 把d更新到dic中 3. 删除; pop(key) popitem() 随机删除 del dic[key] clear() 清空 4. 查询 f…
一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块.python中真正意义的代码块是什么? 块是一个python程序的文本,他是作为一个单元执行的.代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而对于一个文件中的两个函数,也分别是两个不同的代码块: def fu…
一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是一个代码块. 什么叫交互方式?就是咱们在cmd中进入Python解释器里面,每一行代码都是一个代码块,例如: 而对于一个文件中的两个函数,也分别是两个不同的代码块: 二.is id == 的区别 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: na…
一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽然上面的缩进的内容都叫代码块,但是他不是python中严格定义的代码块.python中真正意义的代码块是什么? 块是一个python程序的文本,他是作为一个单元执行的.代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而对于一个文件中的两个函数,也分别是两个不同的代码块: def fu…
今天的目录是 1.小数据池 2.深浅copy 正文开始 1.小数据池 在说明今天的内容前,先说明一个在今天重复用到的一个知识点 ###比较’=’俩边的数据是否完全相同,以及判断一个对象的内存地址是否完全相同### #今天的内容深入研究还是很难再短时间内讲清楚,今天只是浅浅的讲一下 1.1#is判断等号俩边的数据是否相等 #id判断一个对象的内存地址是否完全相同 name ='alex' name1 ='alex1' print(id(name)) print(id(name1)) print(n…
一,id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: name = '太白' print(id(name)) # 1585831283968 那么 is 是什么? == 又是什么? == 是比较的两边的数值是否相等,而 is 是比较的两边的内存地址是否相等. 如果内存地址相等,那么这两边其实是指向同一个内存地址. 可以说如果内存地址相同,那么值肯定相同,但是如果值相同,内存地址不一定相同. 二,代码块. 根据官网提示我们可以获知…
一.什么是代码块? 根据官网提示我们可以获知: A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are blocks: a module, a function body, and a class definition. Each command typed interactiv…
Python(小数据池,集合,深浅拷贝) 一.小数据池 什么是小数据池 小数据池就是python中一种提高效率的方式,固定数据类型,使用同一个内存地址 小数据池 is和==的区别 == 判断等号俩边的值是否相同 is 判断两个内存地址是否相同 小数据池和代码块的关系 注意 : 先执行代码块后执行小数据池 ​ 小数据池 : 支持str,int,bool ​ 数字范围 : -5~256 ​ 字符串 : 1.在做乘法的时候总长度不能超过20 ​ 2.自定义的字符串,长度不限制,字符串必须(字母,数字,…
Python 入门之代码块.小数据池 与 深浅拷贝 1.代码块 (1)一个py文件,一个函数,一个模块,终端中的每一行都是代码块 (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟空间的时候,它会先去检测我们定义的这个值在空间中有没有进行开辟,如果没有开辟就开辟一个空间,如果内存中开辟过就使用同一个). (2)整型(int) : -5 ~ 正无穷 a = -6 b = -6 print(a is b) a = 1000 b = 1000 print(id(a),id(b))…
本文转至太白金星 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是有一个唯一标识的,就好比是身份证号,标识这个空间的叫做内存地址,也就是这个数据(对象)的id,那么你可以利用id()去获取这个数据的内存地址: name = '太白' print(id(name)) # 1585831283968 那么 is 是什么? == 又是什么? == 是比…
一:变量存储的缓存机制 在同一文件(模块)里,变量存储的缓存机制 (仅对python3.x版本负责),那么 --对于Number (int bool float complex) 1.对于整型而言,-5~正无穷范围内的相同值 id一致 2.对于浮点数而言,非负数范围内的相同值 id一致 3.布尔值而言,值相同情况下,id一致 4.复数的id标识都不相同(在 实数+虚数 这样的结构中) (1) int -5 ~ 正无穷范围内var1 = 18var2 = 18print(id(var1),id(v…
主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同一定为真 is 主要是对变量内存地址是否相同的判断,变量值相同不一定为真,但是变量内存地址相同,则变量一定相同. tips:可通过id()来查询变量id why: 1.为什么会存在不同变量共用一个内存地址的情况?1.前面说到的小数据池,即缓存.一部分字符串会被放在缓存中被公用,以提高处理速度 why…
小数据池 1. id() 通过id()可以查看到一个变量表示的值在内存中的地址 s = "Agoni" print(id(s)) # 2410961093272 2. is 和 == == 判断左右两端的值是否相等,是不是一致 is 判断左右两端的内存地址是否一致,如果返回True 可以确定这两个变量使用的是同一个对象 在Python中,默认会把数字, 字符串, 布尔值进行缓存 1. 当我们在控制台时(CMD) #按照这个记 数字: -5 ~ 256 之间的整数会被缓存 字符串: 长度…
小数据池 一种数据缓存机制,也称驻留机制 在同一代码块,相同的值不会开辟新的内存 特殊字符除外 小数据池只针对:在控制台时! 数字 :-5到256间的整数会被缓存 布尔值:都会缓存8 字符串 小于等于一个字符时会缓存 超过一个字母但是只有下划线,字母,数字组成也会缓存 如果字符串乘法,那小于等于20个就会缓存,超过则开辟新的内存 手动缓存,需要调用工具 from sys import intern a=intern("alex@qq.com"*5) b=intern("ale…
数字概念,字符串----小数据池 数字的范围:-5---256 字符串: 1,不能有特殊字符 2,s*20还是同一个地址,s*21之后就是另外一个地址 i1 = 6 i2 = 6 print(id(i1),id(i2))#True i3 = 300 i4 = 300 print(id(i3),id(i4))#False #剩下的list dict tuple set,没有小数据池的概念 l1 = [1,] l2 = [1,] print(l1 is l2) #False i1 = 6 i2 =…
二次编码.解码.小数据池: encode(str:编码):参数编码方式,返回字节码. str_1 = "编码" str_2 = str_1.encode("utf-8") # 使用utf-8进行编码 print(str_2) # 打印内容如下 b'\xe7\xbc\x96\xe7\xa0\x81' decode(str:编码):参数编码方式,返回解码后的结果. str_1 = "编码" str_2 = str_1.encode("utf…