函数加强
不定长参数(打包)
1.按位置打包(打包为一个元组):在定义函数的时候写
函数名(* args):
pass
2.按关键字打包(打包为一个字典):在定义函数的时候写 函数名(* kwargs):
pass
实际参数的拆包:
两种情况:
1.按位置参数拆包 使用*列表/元组 将容器中进行拆解,按照顺序传递给函数(方法)
2.按关键字参数拆包 使用**字典变量名,会将字典进行拆解,拆解为键=参数名,值=参数值,传递给函数(方法)
达到的目的:使实参变得方便
返回值加强
作用:1.将数据返回到函数的调用位置
2.退出函数(中断函数代码的执行)
#返回None
1.函数中没有return,会返回None
2.在函数中,return后面什么都不写,也会返回None
3.故意写return None ,也会返回None
#多种返回值:函数中可以由多个return
#返回多个值:函数中可以通过return返回多个值(以元组形式返回多个值)变量的作用域
作用域: 指变量的作用范围
1.分类:
局部作用域: 定义在函数中的变量, 作用范围在该函数中
全局作用域: 定义在函数外的变量, 作用范围就是全局(任意位置)
注意事项:
全局变量任意位置都能访问(查看 print()), 但是不能在函数中直接修改(可以间接 通过 global 全局变量名 先引入
直接修改(可以间接 通过 global 全局变量名 先引入再修改)
2. 函数中的变量的生命周期:
局部的变量 当函数调用的时候开辟内存空间, 当函数调用结束就释放内存, 从而节约内存空间文件的操作
为什么要用文件?
如果需要永久的存储数据,需要将数据存储到文件中 (硬盘中: 可掉电式设备)
文件类型:1.文本类型
2.二进制文件
注意:
本质上后缀跟文件的类型没有关系, 只是windows操作系统根据后缀识别采用哪类软件应用程序去打开文件. 在linux 中所有内容都以文件存储,并且不管后缀的, 只和权限有关系python文件操作步骤
(1): 打开文件:
open(文件路径,打开方式,encoding=编码方式)
打开方式:
文件操作: r(读,文件必须存在) w(写, 如果没有这个文件自动创建) a(追加,如果没有这个文件自动创建)
二进制操作: rb wb ab (读写追加二进制文件)
(2): 读/写文件
(3): 关闭文件大前提: 必须打开文件
fp = open(文件路径,"r",encoding="utf-8")
读取文件的方法:
fp = open(文件路径,"r",encoding="utf-8")
fp.read(): 一次性读完
fp.read(number): 一次读多个字符
fp.readline(): 一次读读一行
fp.readlines(): 按行读取全部
写入文件的方法:大前提: 必须打开文件
fp = open(文件路径,"w|a",encoding="utf-8")
number = fp.write(数据) : 将数据写入文件并返回写入的字符个数
fp.writelines([数据1,数据2,数据3.....]) : 一次性写入多条数据,切记没有换行
如果换行必须使用 \n
关闭文件:
fp.close()
















