版权声明:转载请说明出处 https://blog.csdn.net/Hulu_IT/article/details/84942687
#函数
###目标:
* 能够说出函数的作用
* 理解参数
* 作用域:全局变量和局部变量
* 理解return关键字
* 默认参数
* 关键字参数
* 可变参数
* 字典参数
* 匿名函数
####函数
- 概念:将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
- 作用:加强代码的复用性,提高程序编写的效率
-
基本语法
# 函数定义:形参 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
# 格式一: # 定义: 函数名 = lambda 形参 : 返回值 # 调用: 结果 = 函数名(实参) add = lambda a,b : a+b add(5,4) # 格式二: # 定义并调用: 结果 = (lambda 形参 : 返回值)(实参) c = (lambda a,b : a+b)(5,4)
-
注意:
- parameter:形参
- arguments:实参
- 函数参数位置:位置参数,可变参数,默认参数,字典参数