首页 > 其他分享 >文档操作、函数基础、装饰器及迭代器相关基础知识

文档操作、函数基础、装饰器及迭代器相关基础知识

时间:2022-10-16 23:45:40浏览次数:67  
标签:函数 迭代 基础知识 器及 参数 名称 空间 文档

本周内容概要

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

本周内容详细

文档操作相关知识

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

打开文档的方式

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

相关文章

  • Docker基础知识 (16) - 部署 Redis 集群
    Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库,并提供多种语言的API。大型网站为了提高站点响应速度,使用......
  • 内置函数,可迭代对象
    一、重要内置函数1.zip()将对不同列表中对应的元素打包成一个个元组,然后返回由这些元组组成的对象.  用list()转换后打印出结果,可以看到输出结果为一个列表,列表中的......
  • 可迭代对象和迭代器对象以及for循环的本质
    目录一、可迭代对象二、迭代器对象迭代器介绍:迭代器对象:迭代器对象的作用迭代器对象实操:注意事项三、for循环的本质一、可迭代对象之前我们对于for循环为什么可以遍历没......
  • CSS基础知识
    1、CSS简介1.1、CSS是什么?CSS指的是层叠样式表(CascadingStyleSheets)CSS描述了如何在屏幕、纸张或其他媒体上显示HTML元素CSS节省了大量工作。它可以同时控制多张网页布局......
  • [Python学习笔记]使用Python编写自动化程序处理锂电池保护板数据 - Python基础知识
    1.1数据以及数据类型python中有以下几种数据类型:整数类型,浮点类型,字符串,清单类型,字典类型,元组类型,真/假类型(布尔类型) 1.1.1整数整数类型就表示数学......
  • 关于数据库的一些基础知识,不总结就会忘
    之前在Mac上安装了MySQL5.7版本,最近想连接数据库看看之前的数据还在不在,结果发现初始密码给忘了。这可怎么办,别着急,从头开始来吧 1.打开终端,输入mysql-uroot-p然后......
  • 列表迭代器
    packagepackage4;importjava.util.ArrayList;importjava.util.List;importjava.util.ListIterator;publicclassListIteratorDemo{publicstaticvoidma......
  • Collection集合存储学生对象并遍历(用迭代器Iterator遍历)
    packagepackage4;importjava.util.ArrayList;importjava.util.Collection;importjava.util.Iterator;publicclassStudentTest{publicstaticvoidmain(......
  • 重要内置函数/迭代器
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常处理/捕获练习题及答案1.重要内置函数1.zip()l1=[1,2,3,4]l2=['jason','k......
  • 内置函数-可迭代对象-迭代器对象-for循环内部原理-异常处理
    内置函数-可迭代对象-迭代器对象-for循环内部原理-异常处理今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环内部原理异常处理今日内容详细重......