- 一、内置方法
- 二、垃圾回收机制与字符编码
- 1.垃圾回收机制
- 1.引用计数
- 2.标记清除
- 3.分代回收
- 2.字符编码发展史
- 1.一家独大
- 2.群雄割据
- 3.天下一统
- 3.字符编码实操
- 1.解决乱码的措施
- 2.编码与解码
- 3.解释器层面
- 三、文件操作简介
- 1.文件操作
- 2.什么是文件
- 3.如何代码操作文件
- 4.文件读写模式
- 5.文件操作模式
- 6.文件的诸多操作方法
- 四、文件读写与光标移动
- 1.文件读写与移动
- 2.文件内数据修改
- 五、函数
- 1.函数的简介
- 2.函数的本质
- 3.函数的语法结构
- 4.函数的定义与调用
- 5.函数的分类
- 6.自定义函数
- 7.函数的返回值
- 8.函数的参数
- 9.位置参数
- 10.关键字参数
- 11.默认值参数
- 12.可变长参数
1.列表内置方法
1>. 统计列表中数据值个数 print(len(变量名))
2>. 尾部追加数据值 变量名.apeend(追加的数据值)
3>. 任意位置插入数据值 变量名.inset(列表数据位置,'内容')
4>. 拓展列表 变量名1.extend(变量名2)
5>. 查询与修改数据 查询: print(变量名[数据位置)] 修改: 变量名[数据位置] = 'meijinNB'
6>. 删除数据 1. del 变量名[删除的数据位置] 2. 变量名.remove('删除掉的数据值')
7>. 查看数据值对于的索引值 print(变量名.index('数据值'))
8>. 统计某个数据值出现的次数 print(变量名.count('数据值'))
9>. 排序 升序: 变量名.sort() 降序: 变量名.sort(reverse=True)
10>.翻转数据值 变量名.reverse()
11>. 比较运算 print(变量名1 > 变量名2)
2.字典内置方法
1>. 字典内k:v键值对是无序的
2>. 取值操作 print(变量名.get('数据值K'))
3>. 统计字典中键值对的个数 print(len(变量名))
4>. 修改数据 变量名['数据值K] = '新数据值' 键存在则是修改
5>. 新增数据 变量名['新数据值K'] = 新数据值V
6>. 删除数据 1. del 变量名['数据值K'] 2. 新变量名 = 旧变量名.pop('旧数据值K') 先取出再删
3. 变量名.popitem() 随机删除
7>. 快速获取键 值 键值对数据 1.print(变量名.keys()) 获取数据中的K 2.print(变量名.values()) 获取数据中的V
3.print(变量名.items()) 获取字典kv键值对数据
8>. 修改字典数据 变量名.update({'数据值K':'数据值V'}) 键存在则是修改 键不存在则是新增
9>. 快速构造字典 变量名 = dict.fromkeys([1, 2, 3], None) 123 K none V
10> 键存在则获取键对应的值 变量名 = info.setdefault('xxx', '新数据值K') 键不存在则设置 并返回设置的新值
3.元祖内置方法
1>.索引相关操作 print(变量名[数据值位置])
2>.统计元组内数据值的个数 print(len(变量名))
3>..查与改 print(变量名[数据位置]) 可以查 变量名[数据位置] = 222 修改不了哦
4.集合内置方法
集合没有内置方法主要用来去重和关系运算
关系运算:& 查看相同 / 查看独有的 |查看所有的 ^ 查看独有排除相同
5.可变类型与不可变类型
1.可变类型 list
值改变(内置方法) 内存地址可以不变
l1 = [11, 22, 33]
print(id(l1)) # 1931283911552 内存地址未变
l1.append(44) # [11, 22, 33, 44] 新增数据值
print(id(l1)) # 1931283911552 内存地址未变
2.2.不可变类型 str int float
值改变(内置方法) 内存地址肯定变
s1 = '$hello$'
print(id(s1))
s1 = s1.strip('$')
print(id(s1)) 内容变 内存地址肯定变
详细案例请看原文:http://t.csdn.cn/uVWXo
二、垃圾回收机制与字符编码 1.垃圾回收机制 1.引用计数当数据值身上的引用计数不为0表示该数据值还有用 不会被删 当数据值身上的引用计数为0则会被垃圾回收机制回收2.标记清除
专门用于解决循环引用的问题 将内存中程序产生的所有数据值全部检查一遍 是否存在循环引用打上标记 之后一次性清除3.分代回收
标记清除每隔一段时间就需要将所有的数据排查一遍 资源消耗过大 为了减轻垃圾回收机制的资源损耗 开发了三代管理2.字符编码发展史 1.一家独大
计算机是有美国人发明的 美国人需要让计算机识别英文字符 英文所有的字符加起来不超过127个(2的七次方) 但是美国人考虑到后续可能出现新的字符所以加了一位以备不时之需(2的八次方) SCII码:内部只记录了英文字符与数字的对应关系 此时的计算机只能识别英文 不识别其他文字2.群雄割据
中国、韩国、日本、等等很多国家都开发了自己的编码表 内部记录了各国自己的字符、英文字符与数字的对应关系 此时的各国计算机文本文件无法直接交互 会出现乱码的情况3.天下一统
后面各大国家不能实现交互这是好就出现了万国码 万国码(unicode):兼容万国字符 英文还是采用1bytes 其他统一采用3bytes3.字符编码实操 1.解决乱码的措施
当初以什么编码存的就以什么编码解 所谓解铃更需系铃人2.编码与解码
编码(人类的字符>>>计算机的字符) 将人类的字符按照指定的编码转换成计算机可以识别的数字 解码(计算机的字符>>>人类的字符) 将计算机能够识别的数字按照指定的编码转成人类可以读懂的字符3.解释器层面
python2默认的编码是ASCII码 想要python2识别文字文件开头要写 coding:utf8 写字符串需要在字符串的前面加u
详细案例请看原文:http://t.csdn.cn/MZH3q
三、文件操作简介 1.文件操作通过编写代码自动化操作文件,读写打开写入删除文件一系列都称作为电脑的操作。2.什么是文件
双击文件图标从硬盘加载到内存,cpu来操作他这就是打开文件 写文件就是将内存中写好了的数据加载到硬盘,硬盘生成一些文本这就是文件。3.如何代码操作文件
方式一:
变量名 文件名 模式 编码语言
tone = open('2.txt', 'r', encoding='utf8')
print(tone.read())
f.colse() # 需要自行关闭文件
方式二:
文件名 模式 编码语言 变量名
with open(r'2.txt', 'r', encoding='utf8')as f:
print(f.read()) # 推荐使用!!!! 自动关闭文件
ps:方式二可以一次性打开多个文件,跟在变量名后面
as f1, open() as f2, open() as f3.....
4.文件读写模式
R 只读模式 默认模式 只能用读取文章不能做其他操作(写) W 只写模式 使用该模式打开的文件只能写内容 不能做其他操作(读) 如果文件已存在则清空里面的内容内容,没有则新建文件 A 追加模式 使用该模式打开的文件默认是在末尾追加新的内容 不能做其他操作(读) 如果文件已存在则在文件内容末尾等待输入,没有则新建文件5.文件操作模式
T 文本模式 RT WT AT 可以缩写单个字符文件操作的默认模式 只能操作文本文件,必须指定encoding参数,读写都是以字符串为单位 B 二进制模式 RB WB AB 不能缩写 去要全部 能够操作所有文件 不需要指定encoding参数 读写都是以bytes为单位6.文件的诸多操作方法
read() 一次性读取文件内容并且光标会停留在文件末尾 继续读则为空 readline() 一次只读一行内容 readlines() 按照行的方式读取所有的内容并组织成列表返回 readable() 判断当前文件是否可读 writable() 判断当前文件是否可写 write() 填写文件内容 writelines() 支持填写容器类型(内部可以存放多个数据值的数据类型)多个数据值 flush() 将内存中的文件数据立刻刷到硬盘(主动按ctrl+s)
详细案例请看原文:http://t.csdn.cn/jufkG
四、文件读写与光标移动 1.文件读写与移动T 文本模式 变量名.read(字符数) 在文本模式下read括号内的数字表示读取几个字符 B 二进制模式 变量名.read(字节数) 在二进制模式下read括号内的数字表示读取几个字节(英文一个字节 中文三个字节) 补充用法 tell() 获取光标移动的字节数 seek(offset,whence) offset 控制光标移动的位移量(字节) whence 模式 0 基于文件开头移动多少字节 1 基于光标当前所在位置移动多少字节 2 基于文件末尾移动多少字节2.文件内数据修改
1.覆盖写 先读取文件内容到内存 在内存中完成修改 之后w模式打开该文件写入 2.重命名 先读取文件内容到内存 在内存中完成修改 之后保存到另外一个文件中 再将原文件删除 将新的文件重命名为原文件
详细案例请看原文:http://t.csdn.cn/rGytS
五、函数 1.函数的简介函数能够帮我们减少重复代码的编写,切随时可以调用到它很方便,在不同的位置反复执行相同的代码。2.函数的本质
python函数是指提前定义好的、可重复使用的、用来实现单一或相关联功能的代码 python函数包含系统中自带的一些函数、第三方函数、以及用户自定义的函数。 注意:函数必须要先定义好之后才能使用3.函数的语法结构
1.def是定义函数的关键字 2.函数名与变量名的命名一致 尽量做到见面知意 函数的基本格式: 3.括号在定义函数的时候函数名后面必须跟括号 def 函数名(参数1,参数2,......): 4.参数定义函数括号内可以写参数(个数不固定) 也可以不写参数 '''函数注释''' 用于接收外界传递给函数体代码内部的数据 函数体代码 5.函数注释类似于说明书 用于介绍函数的主题功能和具体用法 return 返回值 6.函数体代码整个函数最核心的区域(逻辑代码) 7.return控制函数的返回值4.函数的定义与调用
1.函数必须先定义后使用 定义函数的代码必须要在调用函数的代码之前先运行即可 2.定义函数使用def关键字 调用函数使用函数名加括号(可能需要添加额外的参数) 3.函数在定义阶段只检测函数体代码语法 不执行函数体代码 只有在调用阶段才会真正的执行函数体代码 4.函数名到底是什么东西 函数名绑定的是一块内存地址 里面存放了函数体代码 要想运行该代码 就需要调用函数>>>:函数名加括号(图2) 函数名加括号执行优先级最高(定义阶段除外)5.函数的分类
len() 内置函数可以直接调用 但是数据类型的内置方法(函数)必须使用数据类型点的方式才可以调用 相当于是数据类型独有的一些内置方法6.自定义函数
1.空函数
函数体代码使用pass顶替 暂时没有任何功能
主要用于前期的项目搭建 提示主要功能
2.无参函数
函数定义阶段括号内没有填写参数
无参函数直接函数名加括号即可调用
3.有参函数
函数定义阶段括号内填写参数
有参函数调用需要函数名加括号并且给数据值
7.函数的返回值
返回值就是调用函数之后产生的结果 可有可无 获取函数返回值的方式是固定的 变量名 = 函数() 上述方式有则获取 没有则默认接收None 1.函数体代码没有return关键字:默认返回None 2.函数体代码有return关键字:后面不写 也返回None 3.函数体代码有return关键字:return后面写什么就返回什么 (如果是数据值则直接返回 如果是变量则需要找到对应的数据值返回) 4.函数体代码有return关键字并且后面写了多个数据值(名字) 逗号隔开:默认情况下回自动组织成元组返回 5.函数体代码遇到return关键字会立刻结束函数体代码的运行8.函数的参数
1.形式参数 函数在定义阶段括号内填写的参数 简称为'形参' 2.实际参数 函数在调用阶段括号内填写的参数 简称为'实参' 形参与实参关系 形参相当于是变量名 实参相当于是数据值 在函数调用阶段形参会临时与实参进行绑定 函数运行结束立刻解除 >>>:动态绑定 动态解除9.位置参数
1.位置形参 在函数定义阶段括号内从左往右依次填写的变量名称之为位置形参 2.位置实参 在函数调用阶段括号内从左往右依次填写的数据值称之为位置实参 """ 1.实参可以是数据值也可以是绑定了数据值的变量名 2.给位置形参传值得时候必须个数一致 多一个不行 少一个也不行 """10.关键字参数
关键字实参 在函数调用阶段括号内以什么等于什么的形式传值称之为关键字实参 1.指名道姓的给形参传值(打破了位置的限制) 2.位置实参必须在关键字实参的前面 小诀窍:无论是形参还是实参 都遵循短的(简单)在前面 长的(复杂)在后面 3.同一个形参在一次调用中只能传一次值11.默认值参数
默认值形参 在函数定义阶段括号内以什么等于什么的形式填写的形参称之为默认值形参 """ 1.在函数定义阶段就给形参绑定值 后续调用阶段就可以不传 2.调用阶段不传值就使用默认的 传了就用传了的 ps:还需要遵循前面总结的规律(简单的在左边 复杂的在右边) """12.可变长参数
可变长形参 可以打破形参与实参的个数限制 随意传值 *在形参中的作用 接收多余的位置参数并组织成元组的形式赋值给*后面的变量名 **在形参中的作用 接收多余的关键字参数并组织成字典的形式赋值给**后面的变量名
详细案例请看原文:http://t.csdn.cn/5sRAv
有错误或不解的地方请指出,如果这篇文章对你有所帮助请点赞收藏+关注 谢谢支持!



