函数返回多个返回值

实例如下:

1
2
def return_num():
return data1,data2

函数的多种参数形式

  1. 位置参数
  2. 关键字参数
  3. 缺省参数
  4. 不定长参数

位置参数

位置参数:调用函数时根据函数定义的参数位置来传递参数
示例:

1
2
3
4
def print_info(name,years,gender):
print(f"你的名字是{name},年龄是{years},性别是{gender}")

print_info('lulu',18,'girl')

关键字参数

关键字函数:函数调用时通过“键-值”形式传递参数
示例:

1
2
3
4
def print_info(name,years,gender):
print(f"你的名字是{name},年龄是{years},性别是{gender}")

print_info(name='lulul',years=18,gender='girl')

函数调用时,如果有位置参数时,位置参数必须在关键字参数前面,但关键字函数不存在先后顺序

缺省参数

缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值

所有位置参数必须出现在默认参数前,包括函数定义和调用

示例:

1
2
3
4
def print_info(name,age,gender='男'):
print(f"你的名字是{name},年龄是{years},性别是{gender}")

print_info('tumx',18)

不定长参数

不定长参数:即可变参数,用于不确定调用时会传递多少个参数不确定的场景
不定长参数类型:

  1. 位置传递
  2. 关键字传递

位置传递

1
2
3
4
def print_info(*args):
print(args)

print_info('tumx')

传入参数都会被args收集,它会根据传入参数的位置合并为一个元组,这就是位置传递

关键字传递

1
2
3
4
def print_info(**kwargs):
print(kwargs)

print_info(name='tumx',age=18)

参数返回的是“键值对”形式,类型是字典

函数作参数

关键字函数

即带有名称的函数
示例:

1
2
3
4
5
6
def print_result(compute):
result=compute(1,2)
print(result)

def compute(x,y):
return x+y

示例代码将打印和计算分为两个函数,我的理解是程序设计上模块化的设计,用于把函数的具体步骤解耦抽象化,以实现函数的高复用性。
所以,函数传参嵌套是计算逻辑的传递,而非数据的传递
因此,不仅仅是相加、乘除,任何逻辑都可自定义并作为传入函数

lambda函数

匿名函数(无名)
示例代码:

1
2
3
4
5
def print_result(compute):
result=compute(1,2)
print(result)

print_result(lambda x, y: x + y)

使用deflambda定义的函数功能完全一支,只是lambda关键字定义的函数是匿名的,无法二次使用

lambda定义语法
lambda 传入参数: 函数体(一行代码)

注意事项:

  • 用于临时构建的函数,仅仅使用一次的场景
  • 函数体只能写一行代码,如果函数体要写多行则应使用def关键字函数