1.类型转换2.索引取值的操作3.统计列表的数据个数 (len)关键字4.增加数据值 (append)尾部增加数据值 (sinert)索引插入数据值 (extend)扩展列表 底层原理 for+append (+) 也可以使用 + 号5.修改数据值 通过索引修改想要修改的数据 list[] = 新的数值6.删除数据值 (del) 索引删除 (pop) 默认删除尾部 也可以通过索引删除 (remove) 明确删除数据值7.排序 (sort)8.翻转 remevse9.比较运算1.可变的类型 调用方法是修改自己的本身2.不可变的类型 调用方式是产生新的数值 需要重新绑定变量名的数据值1.类型转换 支持 for循环的都可以转成元组,元组在空括号时转换的是元组 需要注意的是当元组只有一个数据值是什么类型就是什么类型 所以要在数据值后加上逗号2.索引取值3.统计元组内数据的个数 len4.查与改 元组支持查 不支持修改1.字典内的K V键值对无序的 不支持索引取值2.取值操作 get3.统计字典内的键值对个数 len4.查找 通过索引K进行查找 或get方法4.修改与增加 通过索引K 来修改 在没有K 的时候是增加5.删除 del、pop、popitem6.快速生成字典 formkeys7.快速获取 K V 键值对 (key、vluses、items)1.类型转换 支持 for循环的类型 并且必须是数据类型不可变的2.定义空集合 set()3.自带去重功能4.关系运算 & | ^ > <垃圾回收机制
1.什么是垃圾回收机制
在python中编辑会产生很多的数据值 当没有绑定变量的数据值则会被当成垃圾回收
'''python会自动申请内存和释放空间'''
2.引用计数
当数据值身上计数不为0时表示还有用 不会被回收
当数据值身上计数为0时 则会被垃圾机制当成垃圾回收
eg: name = 'jason' # jason身上引用计数为1 name1 = name # 此时jason身上引用计数为2 del name # jason 身上引用计数减1当一个数据值身上有一个引用计数则不会被垃圾机制回收3.标记清除
专门用于解决循环引用的问题 将内存中程序所产生的所有数据全部检查一遍 是否存在循环打上标记之后一次性清除
eg: l1 = ['jason'] l2 = ['lisa'] l1.append(l2) # 引用计数2 l2.append(l1) # 引用计数2 del l1 # 解除变量名与l1列表的绑定列表引用计数减一 del l2 # 解除变量名与l2列表的绑定列表引用计数减一当我们把l1和l2的数据解除了 l1和l2的数据还是相互调用 计数存在是一,所以不能被垃圾机制回收4.分带回收
标记清除每隔一段时间就要把所以的数据查一遍 资源消耗过大
为了减轻垃圾机制的资源损耗 所以开发了三代管理 越往下检测的频率就越低
1.只有文本文件才有字符编码的概念
2.计算机内部存取得数据本质 (二进制)
计算机其实只认识0和1
3.为什么我们在使用计算机的时候能随意敲出各国的文字
因为计算机不认识我们人类的语言,所以我们人类定义一种数字的转换关系
4.转换关系不能随便改变 应该有统一的标准
字符编码表 记录了人类的字符与数字的对应关系
1.一家独大
计算机是美国人发明的 美国人需要让计算机识别英文字符
ps:英文所有的字符加起来不超过127个(2的七次方) 但是美国人考虑到后续可能出现新的字符所以加了以为以备不时之需(2的八次方)
ASCII:内部值记录了英文字符与数据的对应关系 1bytes来存储字符
2.群雄割据
因为ASCII表只能表示英文不能表示中文后面我们中国开发了一套可以识别中文的编码表 GBK码表:内部记录了中文字符、英文字符与数字对应的关系 2bybes起步储存中文 (遇到生僻字需要使用跟多的字节) 1bybes存储英文韩国对应的编码表 EUS_kr码 记录了韩文字符与英文字符、数字的对应关系日本对应的编码表 shift_JIS码表 记录了日文与英文字符、数字的对应关系注意:此时的各国计算机文件文本无法直接交互 会出现乱码的情况3.天下统一万国码(unicde):兼容万国字符 所有的字符可以全部使用2bytes起步存储utf家族(针对unicde的优化版本):utf8 英文还是采用1bytes 其他统一采用3bybes注:内存使用unicode 硬盘使用utf81.只有字符串可以参与编码解码 其他数据类型需要先转换成字符串才可以2.如何解决乱码 当初使用什么编码存的就使用什么代码解3.编码与解码 把人类的字符按照指定的编码转换成计算机识别的数字编码:人类的字符>>>计算机的字符使用encode 能将人类的认识的字符转成计算机读懂的字符 a = 'lisa:说皇天不负有心人' res = a.encode('utf8') print(res) # b'lisa\xef\xbc\x9a\xe8\xaf\xb4\xe7\x9a\x87\xe5\xa4\xa9\xe4\xb8\x8d\xe8\xb4\x9f\xe6\x9c\x89\xe5\xbf\x83\xe4\xba\xba''''在python中bytes类型的数据可以看成是二进制数'''解码:计算机的字符>>>人类的字符 b = a.decode(gbk) print(a)3.解释器层面 python2默认的编码是ASCII码 3.1文件头 # coding:utf8 3.2定义字符串 (需要在字符串的前面加u)为什么要这么做 因为没有办法 只能做补救措施 python3默认的编码是utf81.文件操作? 通过编写代码自动来操作文件读写2.什么是文件? 双击文件图标是从硬件加载数据到内存 写文件之后保存其实就是将内存的数据刷到硬盘 文件其实就是操作系统暴露给用户操作计算机硬盘的快捷方式之一3.如何代码操作文件 open('文件路径',读写模式,字符编码') 方法1: f = open() f.close() 方法2: with open() as 变量名 子代码在运行之后自动调用close()方法4.针对文件路径可能有特殊含义字母与撬棍的组合 在字符串的前面加字母r取消特殊含义