第5章 函数
1 函数的基本使用¶
1.1 函数的定义¶
Python 使用 def 保留字定义一个函数,语法形式如下:
1 2 3 | def <函数名>(<参数列表>): <函数体> return <返回值列表> |
1 | <函数名>(<参数列表>) |
1.2 函数的参数传递¶
-
普通参数
1
def 函数名(普通参数):
-
默认值参数 默认值参数必须在普通参数后面。
1
def 函数名(普通参数, 默认参数=默认值):
-
关键参数 通过关键参数可以按参数名字传递值,实参顺序可以和形参顺序不一致。
1 2 3 4
定义: def 函数名(普通参数, 默认参数=默认值): 调用: 函数名(默认值=1, 普通参数=2)
-
可变长度参数 可变长度参数在定义函数时主要有两种形式:parameter 和 *parameter,前者用来接收任意多个实参并将其放在一个元组中,后者接收类似于关键参数一样显示赋值形式的多个实参并将其放入字典中。
1 2 3 4 5 6 7 8 9
第一种形式定义: def 函数名(*参数): 调用: 函数名(参数1, 参数2) 第二种形式定义: def 函数名(**参数): 调用: 函数名(参数1=1, 参数2=2)
1.3 函数的返回值¶
return 语句可以同时将1个或多个值返回给函数被调用处的变量。返回多个值时以元组类型保存。
1.4 变量的作用域¶
一个程序中的变量包括两类:全局变量和局部变量。全局变量是指在函数之外定义的变量;局部变量是指在函数内部使用的变量,仅在函数内部有效。可以在函数内部使用 global 将一个变量声明为全局变量。
1.5 lambda 表达式¶
lambda 表达式可以用来声明匿名函数。语法格式如下:
1 2 3 4 | <函数名> = lambda <参数列表>: <表达式> lambda 函数与普通函数一样,等价于以下形式: def <函数名>(<参数列表>): renturn <表达式 > |
1.6 函数的递归¶
函数定义中调用函数自身的方式形成递归。