二十六、Python基础语法(函数进阶-下)

一、多值参数

多值参数(可变参数、不定长参数):有的函数不确定参数有几个,在一个普通的参数前面加上一个*,这个参数就变为不定参数。可以接收任意多个位置传参的数据,类型为元组。

def test(name, *args, sex='男'):
    print(name, args, sex)


# 传递3个参数
test('张三', 25, sex='女')  # 张三 (25,) 女
# 缺省参数要带上关键字
test('张三', 25, '女')  # 张三 (25, '女') 男
# 传递七个参数
test('张三', 25, 178, 'IT', 'QA', sex='女')  # 张三 (25, 178, 'IT', 'QA') 女
# 多值参数也可以不传递
test('张三')  # 张三 () 男

需求:使用函数对[6,7,8]列表和(2,3,4)元组中的数据进行求和。

my_list = [6, 7, 8]
my_tuple = (2, 3, 4)


def my_add(*n):
    s = 0
    for i in n:
        s += i
    return s


# 手动分解参数
print(my_add(my_list[0], my_list[1], my_list[2]))  # 21
# 自动拆包
print(my_add(*my_list))  # 21
print(my_add(*my_tuple))  # 9

二、函数返回多个数据

函数中返回数据使用的return关键字,除了返回数据值,还可以结束函数的运行,如果想要返回多个数据值,只需要将多个数据值变成容器(一般是元组)返回即可,也可以通过多个变量分别接受多个返回值。

def test(x, y):
    z1 = x + y
    z2 = x - y
    return z1, z2


result = test(3, 1)
print(result)  # (4, 2)
a, b = test(4, 2)
print(a, b)  # 6 2

三、匿名函数

匿名函数:使用 lambda 关键字定义的函数,匿名函数只能实现简单的功能,只能写一行代码,可以作为函数的参数使用,也可以使用 def 定义的函数作为函数的参数。

需求:对列表中的字典排序

user_list = [
    {'name': 'Tom', 'height': 190, 'title': 'TE'},
    {'name': 'Ali', 'height': 178, 'title': 'IE'},
    {'name': 'Kent', 'height': 186, 'title': 'IE'}
]
print(user_list)
# sort()函数用于对列表进行排序
# key=lambda x: x['height']指定了排序的依据
# reverse=True表示以降序进行排序
user_list.sort(key=lambda x: x['height'], reverse=True)
print(user_list)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值