目录
一、函数返回值
返回多个返回值
格式:return 值1,值2,值3
按照返回值的顺序,写对应顺序的多个变量接收即可
变量之间用逗号隔开
支持不同类型的数据返回
def my_return():
return 1,"你好",'A',True
x , y, z,k = my_return()
print(x)
print(y)
print(z)
print(k)
二、函数的多种传参方式
位置参数:
调用函数时根据函数定义的参数位置来传递参数
注意:传递的参数和定义的参数的顺序及个数必须一致
关键字参数:
函数调用时通过“键对值”形式传递参数
作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求
注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
缺省参数:
缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)
作用:当调用函数时没有传递参数,就会使用默认是用缺省参数对应的值
注意:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值
不定长参数:
不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景
作用:当调用函数时不确定参数个数时,可以使用不定长参数
不定长参数的类型:
1.位置传递——以元组的形式接收参数
注意:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递
2.关键字传递 ——以字典的形式接收参数
注意:参数是“键=值”形式的形式的情况下,所有的“键=值”都会被kwargs接受,同时会根据“键=值”组成字典.
练习代码:
def mass (name,age,gender ="男"):
print(f"姓名:{name},年龄:{age},性别:{gender}")
# 关键参数、缺省参数
mass("李华",18,"女生")
mass(age=19,name="王五")
# 不定长-位置传递
def test (*args):
print(args)
test("我","在干嘛","学习")
# 不定长-关键字传递
def test2 (**args):
print(args)
test2(name ="我",age =18,how ="学习")
三、匿名函数
函数作为传递参数:传进另一个函数中进行使用
作用:传入计算逻辑,而非数据的传递
lambda匿名函数:
函数的定义中
def关键字,可以定义带有名称的函数
lambda关键字,可以定义匿名函数 (无名称)
有名称的函数,可以基于名称重复使用;无名称的匿名函数,只可临时使用一次
格式: lambda 传入参数:函数体(一行代码)
lambda 是关键字,表示定义匿名函数
传入参数表示匿名函数的形式参数,如:xy 表示接收2个形式参数
函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
四、文件操作
open()打开函数
语法:open(那么,莫得,encoding)
name:是要打开的目标文件名的字符串(可以包括文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读、写入、追加等
r 模式:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 模式:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除,如果该文件不存在,创建新文件。
a 模式:打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
encoding:编码格式(一般使用UTF-8)
read()方法:
语法: 文本对象.read(num)
num表示要从文件中读取数据的长度(字节),若无传入num,则读取所有数据
readlines()方法:
按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
题目需求:
![6ee36bd2d3384984bf18e32780781663.png](https://img-blog.csdnimg.cn/6ee36bd2d3384984bf18e32780781663.png)
实现代码:
# 打开文件准备读取
fr = open("D:/bill.txt.txt","r",encoding="UTF-8")
# 打开文件得到文件对象,准备写入
fw = open("D:/bill.text","w",encoding="UTF-8")
# for循环读取文件
for line in fr:
line =line.strip()
# 判断是否满足
if line.split(",")[4] == "测试":
# continue进入下一次循环,这一个后面的内容就跳过了
continue
# 将内容写进去
fw.write(line)
# 由于前面对内容进行了strip()操作,所以要手动写出换行符
fw.write("\n")
# 关闭文件
fr.close()
fw.close()
输出结果:
注:本人原创,如有问题或者错误可评论或者私信我!