本周内容概要

  • 文档操作相关知识
  • 函数相关基本知识
  • 名称空间相关知识
  • 闭包函数及装饰器
  • 递归函数与代码简化
  • 常用内置函数
  • 迭代器相关基础知识
  • 异常捕获基础知识

本周内容详细

文档操作相关知识

什么是文档 文档是计算机暴露给用户操作计算机数据的快捷方式。

打开文档的方式

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方法取出数据值,取完数据后捕捉到报错,并进行对应处理。

异常捕获基础知识

异常的分类 语法错误及逻辑错误。

报错文本的基本组成 异常出现位置,异常类型,异常相关提示文本。

原文地址:http://www.cnblogs.com/akazukis/p/16797632.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性