函数进阶
函数的多返回值
def ceshi1():return 1, 2x, y = ceshi1()
print(x) #1
print(y) #2
函数的多种传参方式
1.位置参数:调用函数时根据函数定义的参数位置来传递参数
def ceshi1(name,age):print(f"你的姓名是{name},你的年龄是{age}")ceshi1("wyx", 20)#你的姓名是wyx,你的年龄是20
2.关键字参数:函数调用时通过“键=值”形式传递参数
def ceshi1(name,age):print(f"你的姓名是{name},你的年龄是{age}")ceshi1(name="wyx", age=20)#你的姓名是wyx,你的年龄是20
3.缺省参数:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值
def ceshi1(name,age=10):print(f"你的姓名是{name},你的年龄是{age}")ceshi1(name="wyx")#你的姓名是wyx,你的年龄是10
4.不定长参数:不定长参数也叫可变参数,用于不确定调用的时候会传递多少个参数的场景
def ceshi1(*args):print(args)ceshi1("wyx",10)#('wyx', 10)
5.关键字传递的不定长:
def ceshi1(**args):print(args)ceshi1(name="wyx",age=10)#{'name': 'wyx', 'age': 10}
匿名函数
函数作为参数传递
def ceshi1(num):reault = num(1, 2)print(reault)def num(x, y):return x + yceshi1(num) #3
-
函数num,作为参数,传入了ceshi1函数中使用
-
ceshi1需要一个函数作为参数传入,这个函数需要接受两个数字进行计算,计算逻辑由这个被传入函数决定
-
num函数接收2个数字对其进行计算,num函数作为参数,传递了ceshi1函数使用
-
最终,在ceshi1函数内部,由传入的num函数,完成了对数字的计算操作
lambda函数
函数的定义中
-
def关键字,可以定义带有名称的函数
-
lambda关键字,可以定义匿名函数
有名称的函数,可以基于名称重复使用。
无名称的匿名函数,只可临时使用一次。
定义语法:
lambda 传入参数:函数体(一行代码)
-
lambda是关键字,表示定义匿名函数
-
传入参数表示匿名函数的形式参数,如:x,y表示接收2个形式参数
-
函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
def ceshi1(num):reault = num(1, 2)print(reault)# def num(x, y):
# return x + yceshi1(lambda x,y:x + y) #3