Python基础:17、函数进阶

1.函数的所返回值
def test_return():
    return 1, 2
​
x, y = test_return()
​
print(x)       # 结果为1
print(y)       # 结果为2

按照返回值的顺序,写对应顺序的多个变量接收即可

变量之间用逗号隔开

支持不同类型的数据return

# 多个变量接收多个返回值
def test_return():
    return 1, 2, "hello"
​
​
x, y, z = test_return()
​
print(x)       # 结果为1
print(y)       # 结果为2
print(z)       # 结果为hello
1
2
hello

2.函数多种传参方式
1)掌握位置参数

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

def user_info(name, age, gender):
    print(f"姓名:{name},年龄:{age},性别:{gender}")
​
# 位置参数,默认形式
user_info('张三', 15, '男')

2)掌握关键字参数

关键字参数:函数调用时通过“键=值”形式传递参数.

作用: 可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求.

def user_info(name, age, gender):
    print(f"姓名:{name},年龄:{age},性别:{gender}")
    
# 关键字参数
user_info(name='小红', age=16, gender='女')
user_info(gender='男', name='李四', age=12)   # 可以不按照参数的定义顺序传参

3)掌握不定长参数

不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.

作用: 当调用函数时不确定参数个数时, 可以使用不定长参数

不定长参数的类型:

①位置传递

②关键字传递

# 不定长,位置不定长,*号
# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入
def user_info(*args):
    print(f"args参数的类型是:{type(args)},内容是:{args}")
​
​
user_info(1, 2, "aaaabbbccd")
​
# 不定长,关键字不定长,**号  key - word  :键值对
# 不定长定义的形式参数会作为字典存在
def user_info(**kwargs):
    print(f"kwargs参数的类型是:{type(kwargs)},内容是:{kwargs}")
​
​
user_info(name='hah', age=18, gender='男', addr='四川')
args参数的类型是:<class 'tuple'>,内容是:(1, 2, 'aaaabbbccd')
kwargs参数的类型是:<class 'dict'>,内容是:{'name': 'hah', 'age': 18, 'gender': '男', 'addr': '四川'}

4)掌握缺省参数
def user_info(name, age, gender='男'):  # 设置默认值时,位置必须在函数最后面
    print(f"姓名:{name},年龄:{age},性别:{gender}")
​
​
user_info('小天', 15)
user_info('小甜', 10, '女')

总结:

1.掌握位置参数

  • ·根据参数位置来传递参数

2.掌握关键字参数

  • ·通过“键=值”形式传递参数,可以不限参数顺序
  • ·可以和位置参数混用,位置参数需在前

3.掌握缺省参数

  • ·不传递参数值时会使用默认的参数值
  • ·默认值的参数必须定义在最后

4.掌握不定长参数

  • 位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
  • 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

3.匿名函数
1)函数作为参数传递
# 定义一个函数,接收另一个函数作为参数传入
def test_func(add_num):
    result = add_num(1, 2)
    print(f"add_num参数的类型是:{type(add_num)}")
    print(f"计算结果是:{result}")
​
# 定义一个函数,准备作为参数传入另一个函数
def add_num(x, y):
    return x + y
​
# 调用,并传入函数
test_func(add_num)

2)lambda匿名函数

函数的定义中

  • def关键字,可以定义带有名称的函数

  • lambda关键字,可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用。

无名称的匿名函数,只可临时使用一次。

语法:

lambda 传入参数:函数体(一行代码)
  • lambda 是关键字,表示定义匿名函数

  • 传入参数表示匿名函数的形式参数,如:x, y 表示接收2个形式参数

  • 函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码

# 定义一个函数,接收其它函数传入
def test_func(add_num):
    result = add_num(1, 2)
    print(f"计算结果是:{result}")
​
# 通过lambda匿名函数的形式,将匿名函数作为参数传入
test_func(lambda x, y: x + y)
计算结果是:3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值