一、什么是函数
把一组代码组合在一起,可以实现某种功能;需要时调用即可
二、函数的好处
简化代码;提高代码的复用性;可扩展性强
三、函数的定义和调用,形参和实参
函数的定义:使用关键字def,函数可以有多个形参,用都好分隔;也可以没有形参
函数的调用:函数名加括号;如果函数有形参,调用的时候传入的参数叫实参;若函数没有形参,调用的时候也不必传参
四、函数的四种形参
四种形参 |
必传否 |
解释 |
习惯使用 |
位置参数 |
必传 |
按位置传参 |
NA |
默认值参数 |
非必传 |
传即用,不传就不用 |
NA |
可变参数 |
非必传 |
参数组,接收的是一个元组 |
*args |
关键字参数 |
非必传 |
接收的是一个字典 |
**kwargs |
1、位置参数、默认值参数
2、可变参数
3、关键字参数
五、函数的返回值
return
1、函数碰到return,立即结束这个函数
2、调用完函数后,返回结果
3、函数可以没有返回值,调用完后返回None
4、函数有多个返回值,返回的是一个元组
六、局部变量和全局变量
在函数内部定义的变量是局部变量,只能在函数内部调用
在函数外部定义的变量叫全局变量,在函数内外均可使用
变量必须先定义后使用
如果想在函数内部修改全局变量,要用global修饰;但是,list和dict不能用global修饰
七、函数即变量
函数名作为变量赋值给另一个变量,用变量可以调用函数;当写写一个程序,函数比较多的时候,把各函数和序号1,2,3写在一个字典里,这样调用起来就很方便。
总结:1、函数名+ 括号 是调用函数
2、仅写一个函数名,它是一个变量
3、变量是用来存东西的,变量打印出来是一个内存地址
4、函数即变量,这个变量里面存的是函数的函数体(如上面的例子,xx=login,xx这个变量里存的就是第二行代码,所以xx() 调用login函数的时候,其实就是执行第二行代码)
八、高阶函数
函数的入参是一个函数,这样的函数叫高阶函数
九、嵌套定义函数
定义函数的时候,可以嵌套定义函数,函数的作用域:就近原则
十、函数递归调用 (少用!)
1、一个函数自己调用自己,就是递归调用,递归效率不高,建议不要用
2、递归的作用和循环差不多,但是,递归最多999次
3、必须要有明确的结束条件
写个例子:
十一、Python的内置函数
Python的内置函数,就是Python语言默认已经定义了的函数,直接就可以使用的。
常用的内置函数有:
1、强制转换数据类型: int() bool() str() float() dict() list() set() tuple()
2、filter(func,[1,2,3,4,5]) 根据前面函数(只能有一个形参)处理逻辑一次处理后面的可迭代对象的每个元素,返回true的元素保存,查看结果用list(filter(xxx))
3、map(func,[1,2,3]) 根据前面函数(只能有一个形参)处理逻辑一次处理后面的可迭代对象的每个元素,返回结果都保存
4、max() 取最大值
5、sorted([1,5,7,3],reverse = True) 排序,默认升序,如果写了reverse=TRUE ,就降序