本周内容概要
- 文档操作相关知识
- 函数相关基本知识
- 名称空间相关知识
- 闭包函数及装饰器
- 递归函数与代码简化
- 常用内置函数
- 迭代器相关基础知识
- 异常捕获基础知识
本周内容详细
文档操作相关知识
什么是文档 文档是计算机暴露给用户操作计算机数据的快捷方式。
打开文档的方式
open()方法
使用open方法打开文档,需要提供文件路径,打开方式,解码方式参数。
open方法打开文档后需要手动关闭,不关闭会持续占用内存空间。
with open方法
with open方法打开文档与open方法相似,优点是可以自动关闭文档,且一次可同时打开多个文档。
打开文档的模式
r 模式 只读模式,不可进行写入操作。
w 模式 只写模式,打开自动清除原内容,从头写入。
a 模式 只追加模式,从文档末尾开始写入数据,不可读取。
操作文档的模式
文本模式
只可操作文本文档,r、w、a模式默认是文本模式,需要提供解码方式参数。
二进制模式
可操作所有格式文档,需要指定打开模式,不需要解码方式参数。
文档内光标的移动
tell() 查看光标距文档起始位置的距离,单位为字节数。
seek() 进行文档内光标的移动,依次传入起始位置参数,位移量参数,位移量为正向右,负向左。
起始位置参数为0时,位移以文档开始为基准,可以字符为单位。
起始位置参数为1时,以当前光标所在位置为基准,以字节为位移量单位。
起始位置参数为2时,以文档末尾为基准,以字节为位移量单位。
光标移动的应用
检测文档数据的变化。打开文档,将光标移动至文档末尾,进行循环读取,若读取值为空,则待机一段时间,若不为空,可复制读取的数据写入另一个文档。
函数相关基础知识
什么是函数 函数是实现某个功能的一段代码。
函数的基本组成
函数名 调用函数的必须条件,函数名与变量名类似,需要见名知义。
参数 调用函数时需要传入的数据,定义时不填则默认不需要参数。
函数注释 对函数的功能或使用方法进行解释说明。
函数体代码 函数实现功能的核心部分。
return 函数的返回值,不规定返回值默认为None。
函数的参数
形参与实参 定义阶段括号内的为形参,调用阶段传入的为实参,运行函数时两者临时绑定。
参数书写顺序 短的简单的在前,长的复杂的在后。
位置参数 用来表示参数相对位置的参数,传参时默认按照位置绑定。关键字传参打破位置限制。
默认参数 定义阶段已赋值过的参数,使用时可自行传参,不传参数则使用默认值。
可变长参数 *args接收多余的位置传参组合成元组赋值给星号后的变量名。
**kwargs接收多余的关键字传参组合成字典赋值给双星号后的变量名。
名称空间相关知识
名称空间的分类
内置名称空间 储存python解释器内置方法与其相应代码的绑定关系的空间。
全局名称空间 储存程序文档内全局变量与其对应数据的绑定关系的空间。
局部名称空间 储存函数/类名与其对应代码的绑定关系的空间。
名称空间的存活周期及作用范围
内置名称空间 打开解释器生成,关闭销毁,解释器内全局生效。
全局名称空间 打开程序文件生成,关闭销毁,文档内全局生效。
局部名称空间 调用函数/类生成,关闭销毁,函数内生效。
名称的查找顺序
按照以下层级由后往前依次查找:
内置名称空间>>>全局名称空间>>>局部名称空间>>>局部名称空间内产生的子空间
打破名称查找规则的关键字
global 声明要调用的变量名是全局名称空间内的变量名。
nonlocal 多重空间嵌套时,声明要调用的变量名是上一级嵌套空间内的变量名。
闭包函数与装饰器
闭包函数
函数嵌套时,内部函数使用了外部函数名称空间内的变量名,这样的函数为闭包函数。
闭包函数主要应用是为内部函数传参。
装饰器
无参装饰器模板
def outer(func_name):
def inner(*args, **kwargs):
res = func_name(*args, **kwargs)
return res
return inner
有参装饰器模板
def wrapper(parameter_name):
def outer(func_name):
def inner(*args, **kwargs):
res = func_name(*args, **kwargs)
return res
return inner
return outer
装饰器的修复
from functools import wraps
...
@wraps
...
装饰器语法糖
将紧跟着语法糖的函数名作为第一个参数传给装饰器。
递归函数与代码简化
递归函数
函数内部调用自身,且每调用一次自身都比上一次的结果简单,这样的函数称为递归函数。
算法与二分法
算法是解决已知问题的方法,没有完美的算法。
二分法是最简单的算法,一般用来快速查找大量有序数字内的指定数值,当目标数值位于数字序列中的开头及末尾时,使用二分法效率极低。
代码简化
三元表达式 常用于二选一的情形。
列表生成式 最常用,对原容器内数据进行统一操作形成新列表时使用,生成式内部为for循环。
匿名函数 不与函数名绑定,不可单独使用,常与其他内置函数组合使用。
常用内置函数
重要内置函数
map() 映射,将传入的可迭代对象的的数据传参给传入的函数,得到结果并返回。
zip() 拉链,将传入的多个容器数据内的数据按照位置组合成元组返回,"木桶原理"。
filter() 过滤,将传入的容器数据内的数据按照给出规则筛选,返回满足条件的数据。
sorted() 排序,默认为升序,使用reverse改变排序规则。
其他内置函数
函数名 | 功能 | 函数名 | 功能 |
---|---|---|---|
abs() | 返回绝对值 | globals() | 查看所有全局变量 |
all() | 判断所有对象是否为真 | hash() | 加密文本 |
any() | 判断是否有对象为真 | hex() | 转换为十六进制数 |
bin() | 转换为二进制数 | id() | 查看内存地址 |
callable() | 判断是否可作为函数调用 | isinstance() | 判断是否属于指定对象 |
chr() | 转换为二进制字符 | oct() | 转换为八进制数 |
dir() | 查看对象所有可调用方法 | ord() | 转换为人类文本 |
divmod() | 做除法运算,返回商和余数的元组 | pow() | 做幂运算 |
eval() | 执行文本内的代码(不含判断) | round() | 求近似整数 |
exec() | 执行文本内代码 | sum() | 求和 |
迭代器相关基础知识
可迭代对象
可迭代的数据类型有字符串、列表、元组、字典、集合、文件。
迭代器对象
对可迭代对象调用双下iter方法后得到迭代器对象。
迭代器对象再次调用双下iter方法后得到结果与自身相等。
迭代器对象调用双下next方法后得到可迭代对象内的数据值。
数值取完后,再次调用双下next方法会报错。
for循环本质
for循环就是对可迭代对象调用双下iter方法后,调用双下next方法取出数据值,取完数据后捕捉到报错,并进行对应处理。
异常捕获基础知识
异常的分类 语法错误及逻辑错误。
报错文本的基本组成 异常出现位置,异常类型,异常相关提示文本。
标签:函数,迭代,基础知识,器及,参数,名称,空间,文档 From: https://www.cnblogs.com/akazukis/p/16797632.html