网站建设行业解决方案,苏州新途网络科技有限公司,哪个行业必须做网站,做赚钱问卷调查的网站函数多返回值
学习目标#xff1a;
知道函数如何返回多个返回值
问: 如果一个函数如些两个return (如下所示)#xff0c;程序如何执行#xff1f; 答#xff1a;只执行了第一个return#xff0c;原因是因为return可以退出当前函数#xff0c;导致return下方的代码不执…函数多返回值
学习目标
知道函数如何返回多个返回值
问: 如果一个函数如些两个return (如下所示)程序如何执行 答只执行了第一个return原因是因为return可以退出当前函数导致return下方的代码不执行
多个返回值
如果一个函数要有多个返回值该如何书写代码 按照返回值的顺序写对应顺序的多个变量接收即可
变量之间用逗号隔开
支持不同类型的数据return
函数多种传参方式
学习目标
掌握位置参数掌握关键字参数掌握不定长参数掌握缺省参数
函数参数种类
使用方式上的不同, 函数有4中常见参数使用方式:
位置参数关键字参数缺省参数不定长参数
位置参数
位置参数调用函数时根据函数定义的参数位置来传递参数 注意 传递的参数和定义的参数的顺序及个数必须一致
关键字参数
关键字参数函数调用时通过“键值”形式传递参数.
作用: 可以让函数更加清晰、容易使用同时也清除了参数的顺序需求. 注意 函数调用时如果有位置参数时位置参数必须在关键字参数的前面但关键字参数之间不存在先后顺序
缺省参数
缺省参数缺省参数也叫默认参数用于定义函数为参数提供默认值调用函数时可不传该默认参数的值注意所有位置参数必须出现在默认参数前包括函数定义和调用.
作用: 当调用函数时没有传递参数, 就会使用默认是用缺省参数对应的值. 注意 函数调用时如果为缺省参数传值则修改默认参数值, 否则使用这个默认值
不定长参数
不定长参数不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.
作用: 当调用函数时不确定参数个数时, 可以使用不定长参数
不定长参数的类型: ①位置传递 ②关键字传递
位置传递 注意 传进的所有参数都会被args变量收集它会根据传进参数的位置合并为一个元组(tuple)args是元组类型这就是位置传递
关键字传递 注意 参数是“键值”形式的形式的情况下, 所有的“键值”都会被kwargs接受, 同时会根据“键值”组成字典.
总结
1. 掌握位置参数 ·根据参数位置来传递参数
2. 掌握关键字参数 ·通过“键值”形式传递参数可以不限参数顺序 ·可以和位置参数混用位置参数需在前
3. 掌握缺省参数 ·不传递参数值时会使用默认的参数值 ·默认值的参数必须定义在最后
4. 掌握不定长参数 · 位置不定长传递以*号标记一个形式参数以元组的形式接受参数形式参数一般命名为args · 关键字不定长传递以**号标记一个形式参数以字典的形式接受参数形式参数一般命名为kwargs
匿名函数
函数作为参数传递
在前面的函数学习中我们一直使用的函数都是接受数据作为参数传入
数字字符串字典、列表、元组等
其实我们学习的函数本身也可以作为参数传入另一个函数内。
如下代码 函数compute作为参数传入了test_func函数中使用。
test_func需要一个函数作为参数传入这个函数需要接收2个数字进行计算计算逻辑由这个被传入函数决定compute函数接收2个数字对其进行计算compute函数作为参数传递给了test_func函数使用最终在test_func函数内部由传入的compute函数完成了对数字的计算操作
所以这是一种计算逻辑的传递而非数据的传递。
就像上述代码那样不仅仅是相加相见、相除、等任何逻辑都可以自行定义并作为函数传入。
总结
1. 函数本身是可以作为参数传入另一个函数中进行使用的。
2. 将函数传入的作用在于传入计算逻辑而非传入数据。
lambda匿名函数
函数的定义中
def关键字可以定义带有名称的函数lambda关键字可以定义匿名函数无名称
有名称的函数可以基于名称重复使用。
无名称的匿名函数只可临时使用一次。
匿名函数定义语法 lambda 是关键字表示定义匿名函数传入参数表示匿名函数的形式参数如x, y 表示接收2个形式参数函数体就是函数的执行逻辑要注意只能写一行无法写多行代码
如下图代码我们可以
通过def关键字定义一个函数并传入如下图 也可以通过lambda关键字传入一个一次性使用的lambda匿名函数 使用def和使用lambda定义的函数功能完全一致只是lambda关键字定义的函数是匿名的无法二次使用
总结
1. 匿名函数使用lambda关键字进行定义
2. 定义语法
3. 注意事项
匿名函数用于临时构建一个函数只用一次的场景匿名函数的定义中函数体只能写一行代码如果函数体要写多行代码不可用lambda匿名函数应使用def定义带名函数