一.概念
将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
二.作用
加强代码的复用性,提高程序编写的效率
三.基本语法
# 函数定义:形参
def 函数名(形参):
函数体
return 结果 # 根据需求决定是否return
# 函数调用:实参
变量名 = 函数名(实参)
四.作用域
局部变量:函数内部定义的变量从函数定义位置开始到函数定义结束位置有效
全局变量:函数外部定义的变量,从变量定义位置开始,在整个文件中有效。
# 在函数内调用全局变量
global 变量名
五.默认参数
默认参数的定义必须在位置参数的右侧
默认参数在调用传值时,按照位置参数进行对待,从左至右依次赋值
def test(a, b=2, c=3):
pass
test(100, 200, 300) # a=100 b=200 c=300
六.关键字参数
关键字参数必须出现在位置参数的后面.
不允许使用关键字参数对同一个形参进行多次 赋值.
关键字参数只能出现在位置参数的后面,赋值时必须使用关键字参数传值
def test(a=100, b=200):
pass
test(b=1)
七.可变参数
可变参数在一个函数/方法定义中只能出现一次
可变参数只能出现在位置参数的后面,位置参数在左侧,可变参数在右侧
先定义位置参数,再定义可变参数,最后定义默认参数
def test(*args):
pass
test(1,2,3,4,5)
八.字典参数
字典参数在一个函数/方法定义中只能出现一个
先定义位置参数,再定义可变参数,然后定义默认参数,最后定义字典参数
def test(**kwargs):
pass
test(a=1, b=2)
九.递归函数
递归分为两个重要的阶段:递推 + 回溯
十.匿名函数
# 格式一
# 定义: 函数名 = lambda 形参 : 返回值
# 调用: 结果 = 函数名(实参)
add = lambda a, b : a+b
a = add(5, 4) # a就等于9
# 格式二
# 定义并调用: 结果 = (lambda 形参 : 返回值)(实参)
c = (lambda a, b: a + b)(5, 4) # c等于9
注意
parameter: 形参
arguments: 实参
函数参数位置: 位置参数, 可变参数, 默认参数, 字典参数