- 定义
- 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
- 特性
- 减小重复代码
- 使程序变的可扩展
- 易维护
- 函数参数
- 定义函数可以带参数,也可不带参数
- 形参:只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数则不能再使用该形参变量
- 实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值
- 默认参数
1 def stu_register(name,age,course,country="CN"):
#代码中country即为默认参数,当调用函数时,如果country不指定的话,则默认为“CN”,指定了的话,为指定的数
#在定义函数时,默认参数要放在最后面- 关键参数
- 正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只要指定参数名即可(指定了参数名的参数就叫关键参数)
- 关键参数必须放在位置参数(以位置顺序确定的高对应关系的参数)之后
1 def stu_register(name, age, course='PY' ,country='CN'):
2
3 #调用
4 stu_register("王山炮",course='PY', age=22,country='JP' )
5
6 #不可以用下面这两条
7 stu_register("王山炮",course='PY',22,country='JP' )
8 stu_register("王山炮",22,age=25,country='JP' )
- 非固定参数
- 在定义函数时不确定用户想传入多少个参数,就可以使用非固定参数
- *args:def func(a,*args),传过来的所有参数打包成元组发送给args,通常放在最后,要不然会截胡
1 #方式一:
2 send_alert('报警','z','w','q','a')
3 #方式二:必须要带*
4 send_alert('报警',*('z','w','q','a'))
5 send_alert('报警',*['z','w','q','a'])- **kargs:def func(a,**kargs),会把多传入的参数变成一个字典形式发送给kargs
- return
- 终止函数,即使return后面还有代码,也不执行
- 若函数没有return的话,函数返回None
- 全局变量 & 局部变量
- 局部变量:在函数内部定义的变量为局部变量,作用域为定义该变量的函数
- 全局变量:在函数外,定义在函数外部一级代码的变量,全局能用,作用域为整个程序
- 全局变量不能调用局部变量
- 函数内部调用全局变量:只要函数内部没有和全局变量同名的局部变量即可
- 在函数内修改全局变量:在函数内定义:global name,实际项目中,不建议用global,一般情况下不用
- 在函数内部修改列表,可通过切片方式修改列表,如果要整体修改的话,就要使用global了
- 嵌套函数
- 函数内部可以再次定义函数
- 执行需要被调用
- 匿名函数
- 不需要显示指定函数名
1 calc = lambda x,y:x**y
2 print(calc(2,5))
- 高阶函数
- 接收一个或多个函数作为输入
- return返回另外一个函数
- 递归函数
- 在函数内部,可以调用其他函数,如果一个函数在内部调用自身函数,这个函数就是递归函数
- 两个基本要素,只有具备了这两个基本要素,才能在有限次计算后得出结果
- 边界条件:确定递归到何时终止,也称为递归出口。
- 递归模式:大问题是如何分解为小问题的,也称为递归体。
1 def func(n):
View Code
2 if n == 1:
3 return 1
4 return n*func(n-1)
5 print(func(4))
相关文章
- python之匿名函数和递归函数
- Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数
- python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
- 【Python012-递归函数&匿名函数(lambda)&内置函数】
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
- 函数——基本语法,嵌套、匿名、高阶、递归函数
- python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)
- Python day5 --------递归、匿名函数、高阶函数、内置函数
- 浅谈python之高阶函数和匿名函数