文章目录
函数
函数的多返回值
函数的多种传参方式
函数参数种类
- 位置参数
位置参数:调用函数时根据函数定义的参数位置来传递参数
注意:传递的参数和定义的参数的顺序和个数必须一致
- 关键字参数
关键字参数:函数调用时通过“键=值”行式传递参数
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
- 缺省参数
缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不传递该默认参数的值,
所有位置参数必须出现在默认参数前,包括函数的定义和调用
注意:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值
- 不定长参数
- 位置传递
注意:
传进的所有参数都会被args变量收集,它会根据传递参数的位置合并为一个元素(tuple),args是元组类型,这就是位置传递- 关键字传递
注意:参数是键值行式的情况下,所有的键值都会被kargs接受
匿名函数
函数作为参数传递
- 这是一种
计算逻辑的传递,而非数据的传递,如上述代码,不仅是相加逻辑,任何逻辑都可以自行定义并作为函数传入
lambda匿名函数
- 匿名函数用于临时
构建一个函数,只用一次的场景
- 匿名函数的定义中,函数体
只能写一行代码
,如果函数体要写多行代码,不可以用lambda匿名函数,应该使用def定义的带名函数
文件编码
编码技术:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容
文件
文件操作的步骤
打开文件
注意:此时的'f'是'open'函数的文件对象,对象是python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问
- mode常用的三种基础访问模式
读写文件
- read()方法
注意:若在程序中多次调用read(),下一个read要在上一个read()结尾处继续执行
- readlines()方法
- readline()方法
- for循环读取行
- with open语法
关闭文件
操作汇总
文件的写入
案例演示
- 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
- 当调用flush的时候,内容会真正写入文件
- 这样做是避免频繁的操作硬盘,导致硬盘效率下降(攒一堆,一次性写入硬盘)
w模式:文件不存在会创建新文件
w模式:文件存在,会清空原有内容
close方法,带有flush方法的功能
文件追加
a模式:文件不存在会创建文件
a模式:文件存在会在最后,追加写入文件
异常
异常:当检测到一个错误时,python解释器无法继续执行,反而出现了一些错误提示,这就是所谓的
“异常”
,也就是我们常说的bug
基本语法
- 基本的异常捕获方式
- 捕获指定异常
注意:如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
一般try下方只放一行尝试执行的代码
- 捕获多个异常
- 异常else
- else表示没有异常要执行的代码
- 异常的finally
- finally表示无论是否异常都要执行的代码
异常的传递
异常具有传递姓,当函数func01中发生异常,并且没有捕获处理这个异常的时候,异常就会传递到函数func02,当函数func02也没有捕获处理这个异常的时候,main函数会捕获这个异常,这就是异常的传递性
- 当所有函数都没有捕获异常的时候,程序就会报错
模块
Python模块是一个python文件,以.py结尾,模块能定义函数、类和变量,模块里可能包含可执行的代码
模块的导入方式
自定义模块
- all
python包
从物理上看,包就是一个文件夹,在该文件夹下包含了一个_init_.py文件,该文件夹可用于包含多个模块文件,从逻辑上看,包的本质依然是模块
- 当我们的模块文件越多越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块