Python基础(四)函数和lambda表达式
2019-09-27 本文已影响0人
鹊南飞_
1. 定义函数和使用函数
函数调用示意图def 函数名(形参列表):
// 有零条到多条可执行语句组成的函数
[return [返回值]]
函数名:应该由一个或多个有意义的单词连缀而成 ,每个单词由多个形参名组成,单词与单词之间由下划线组成
形参列表:由多个形参名组成,多个形参名之间以英文逗号隔开
返回值:可以直接返回多个值,Python会自动将返回值封装成元组
递归函数:自己调用自己的函数,关键的规定为一定要向已知方向进行(即不能进入死循环)
2. 函数的参数
1. 关键字参数
按照形参位置传入的参数被称为位置参数,必须按照定义函数指定的顺序来传入参数值
关键字参数
2. 参数默认值
参数默认值3. 参数收集(个数可变的参数)
在形参前面加上一个星号(*),意味着可以在调用函数时传入任意多个参数,被当成元组传入。
参数收集
4. 逆向参数收集
在程序已有列表,元组,字典等对象的前提下,将他们的元素拆下来传递给函数的参数。需要在传入的列表前加入一个星号,在字典之前加入两个星号
逆向参数收集
5. 函数的函数传递机制
Python都是值传递,将实际参数的副本(复制品)传入函数,而参数本身不受到任何影响
6. 变量作用域
全局参数,在函数外面,全局范围定义的变量
局部参数,在函数内部定义的变量
-
声明全局变量
全局变量 -
声明局部变量
局部变量
3. 函数的高级内容
1. 使用函数变量
可以将函数赋值给变量
函数变量
2. 使用函数作为函数形参
像使用其他参数一样使用函数参数
函数形参
3. 使用函数作为返回值
4. lambda表达式
语法格式如下:
lambda [parameter_list]: 表达式
- 必须使用lambda关键字定义
- 冒号左边的是参数列表,可以没有参数,也可以有多个参数(用逗号隔开)
- 冒号右边的是返回值
- 使代码更简洁
- 相对于函数用完立即释放,提高性能
# 函数
def add(x, y):
return x + y
# lambda
lambda x, y : x + y
Python既支持面向过程编程,也支持面向对象编程。函数和lamba是Python面向过程的编程基础。