Python第七章节——Python函数进阶

如果在一个函数中有两个return返回值,那么程序会如何执行?

def temple():
    return 1
    return 2

我们应该明确一个函数到哪里就会结束,一旦函数代码块执行到return,那么就会直接完成这个函数,下方的代码并不会得到有效的执行,所以如上的代码只会返回1,并不会受到下方代码的影响

一.函数多返回值

那么如果一个函数需要有多个返回值,该怎么办?

1.按照返回值的顺序写出对应顺序的多个变量对数据进行接收

2.变量之间用逗号隔开

3.支持不同类型的数据用以返回

def temple()
    return 1, 2

二.函数的多种传参方式

1.函数的参数种类:

根据使用方式上的不同,函数中有四种常见参数的使用方式,分别为:位置参数,关键字参数,缺省参数,不定长参数

(1).位置参数:

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

def student(name, age, score):

注意:传递的参数和定义的参数的顺序以及个数必须一致

(2).关键字参数:

函数调用时通过“键 = 值”的形式传递参数

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

def student(name, age, score)
    print({name},{age},{score})
student(name="A",age=18,score=100)

注意:函数调用时,如果有位置参数的话,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

(3).缺省参数:

也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不传该默认参数的值(所有位置参数必须出现在默认参数前,包括函数定义和调用)

作用:当调用函数时没有传递参数,就会使用默认是缺省参数对应的值

def student(name, age, score=100)
    print({name},{age},{score})
student(name="A",age=18)
student(name="B",age=19,score=90)

注意:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值

(4).不定长参数:

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

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

不定长参数的类型:位置传递和关键字传递

位置传递:

使用了*的关键字,表示形式参数会接收所有的传入参数,并将传入参数整合为一个元组

def temple(*elements):
    print(elements)
temple("A",18,100)

关键字传递:

使用了**的关键字,表示形式参数会接收所有的传入参数,同时数量必须满足key=value的键值对形式,最后所有的传入参数都会被整合为一个字典

def student(**elements):
    print(elements)
student(name="A",age=18,score=100)

三.匿名函数

1.函数作为参数传递

在之前我们学习函数时一直都是接收外部数据作为参数传入,但是其实我们学习的函数本身,也可以作为参数传入另一个函数内

def mul(x, y)
    return x * y

def test(mul):
    result = mul(1,2)
    print(result)

在上方的示例中,mul函数就作为一个参数传入到了test函数中

但是在这种应用场景中,传递的其实是计算逻辑,而非数据,真正传递的其实是mul函数中对数字乘的计算逻辑,与在函数中调用函数有异曲同工之妙

2.lambda匿名函数

在函数的定义中可以通过del关键字定义带有名称的函数,而使用lambda关键字可以定义匿名的函数(无名称),两者的区别为:有名称的函数可以基于名称重复使用,而无名称的匿名函数只可临时使用一次

匿名函数的定义语法:

lambda 传入参数:函数体(一行代码)

(1).lambda是关键字,表示接下来定义的是匿名函数

(2).传入参数表示匿名函数的形式参数,如x,y表示接收两个形式参数

(3).函数体就是函数的执行逻辑(只能写一行代码)

lambda x, y:x * y #定义了一个计算两数相乘的函数

注意:使用def和使用lambda所定义的函数功能完全一致,只是lambda关键字定义的函数是匿名的,无法二次使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值