Python -- 3语法基础(三)
目录
一、函数
1、函数的作用
函数就是一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。函数在开发过程中,可以更高效的实现代码重用。
2、函数的使用步骤
- 定义函数
 
def 函数名(参数):
代码...
- 调用函数
 
函数名(函数)
注:在不同需求中,参数可有可无;在Python中,函数必须先定义后使用。
3、函数参数的作用
4、函数的返回值作用
5、应用:计算任意两数字之和,并保存结果
6、函数的说明文档
- 定义函数说明文档
 
def 函数名(参数):
""" 说明文档的位置 """
代码...
- 查看函数说明文档
 
help(函数名)
7、函数的嵌套调用
函数嵌套调用是指一个函数里面又调用了另一个函数。
8、变量作用域
变量作用域指的是变量生效的范围,主要分为两类:局部变量和全局变量。
- 局部变量:只在函数体内部生效
 
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成,则销毁局部变量。
- 全局变量:在函数体内、外都能生效的变量
 
在函数体内部修改全局变量:使用global关键字声明。
9、函数的参数
- 位置参数:调用函数时根据函数定义的参数位置来传递参数。
 
注:传递和定义参数的顺序及个数必须一致。
- 关键字参数
 
写法:key = value
注:函数调用时,如果又位置参数时,位置参数必须子啊关键字参数的前面,但关键字参数之间不存在先后顺序。
- 缺省函数:也叫默认参数,用于定义参数,为参数提供默认值,调用函数时可不传该默认参数的值。
 
注:函数调用时,如果为缺省参数传值则修改默认参数值;否则使用这个默认值
- 不定长函数:可变参数,用于不确定调用时会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。
- 包裹位置传递:收集所有位置参数,返回一个元组
 - 包裹关键字传递:收集所有关键字参数,返回一个字典
 
 
10、拆包
11、引用
在python中,值是靠引用传递来的。
我们可以用id()来判断两个变量是否为同一个值得引用。可以将id得值理解为内存地址得标识。
二、应用:学院管理系统
1、系统简介:需求,键入系统显示系统功能界面,功能如下:
- 添加学员
 - 删除学员
 - 修改学员信息
 - 查询学员信息
 - 显示所有学员信息
 - 退出系统
 
三、递归
1、递归的特点
- 函数内部自己调用自己
 - 必须有出口
 
四、lambda表达式
语法: lambda 参数列表 : 表达式
注:
- lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用。
 - lambda函数能接受任何数量的参数但只能返回一个表达式的值。
 
应用:计算 a+b
2、lambda的参数形式
- 无参数
 
- 一个参数
 
- 默认参数
 
- 可变参数:**args
 
这里的可变参数传入到 lambda 之后,返回值为元组
- 可变参数:**kwargs
 
3、lambda的应用
- 带判断的 lambda
 
- 列表数据按字典key值排序
 
五、高阶函数
把函数作为参数传入
1、内置高阶函数
- map()
 
- reduce()
 
- filter()
 
六、闭包
python函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被成为闭包。
闭包需要满足如下三个条件。
- 存在于两个嵌套关系的函数中,并且闭包是内部函数。
 - 内部函数引用了外部函数的变量(自由变量)。
 - 外部函数会把内部函数的函数名称返回。
 
七、装饰器
假设我们已经开发了一个本有的函数,后续可能会增加临时需求,例如插入日志,我们可以增加一个包裹函数,由它来负责这些额外需求,这个包裹函数就是装饰器。
装饰器主要应用场景:
- 引入日志
 - 执行函数后的清理功能
 - 函数执行时间统计
 - 权限校验
 - 执行函数前预备处理
 - 缓存
 
装饰器是一个函数,他需要接受一个参数,该参数表示被修饰的函数。
通过在函数定义前面添加@符合,和装饰器名,实现装饰器对函数的包装。
def wrap(func): print("正在装饰") def inner(): print("正在验证权限") func() return inner @wrap def f1(): print("f1") f1()
多个装饰器应用在一个函数上,调用顺序是从下至上。
八、文件
文件操作的作用:把一些内容存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。
1、打开
打开文件的方式:
- r:已读方式打开文件。
 - w:打开一个文件只用于写入。
 - a:打开一个文件用于追加。
 
2、写入
对象对象.write( ' 内容 ' )
注意:w和a模式:如果文件不存在则创建文件;如果文件存在,w模式先清空再写入,a模式直接在末尾追加。
r模式:如果文件不存在则报错。
3.读
- read()
 
文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中的所有的数据。
- readlines()
 
文件对象.readlines()
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
- readline()
 
readline()一次读取一行内容。
4、移动文件指针
seek()
文件对象.seek(偏移量,起始位置)
起始位置:0,文件开头;1,当前位置;2,文件结尾
5、关闭
文件对象.close()
6、文件和文件夹的操作
在python中文件和文件夹的操作要借助os模块里面的相关功能。
                    
                
                
            
        
浙公网安备 33010602011771号