一、为什么需要函数?(why)
1、代码结构不清晰,可读性比较差
2、代码量多(多余、重复)比较冗余
3、后期的维护性差,扩展性差
基于以上问题,程序中必须有对应的解决方案,这个方案就是函数
二、函数是什么?(what)
函数是实现某一功能代码的集合体
相当于生活中具备某个功能的工具
要想使用工具,必须先制造工具,才能去使用
同理:在程序中想要使用函数,必须自己先定义函数(创建函数)
三、如何定义函数?(how)
先定义,再调用
函数的定义阶段只检测语法,不参与执行代码(也就是说,语法错误在函数定义阶段就会检测出来,但是代码的逻辑错误只有在执行时才会知道)
定义阶段:1、申请内存空间,将函数体的代码存储到内存中
2、将函数的内存地址,与函数进行绑定
调用阶段:
1、通过函数名找到函数的内存地址
2、加括号触发函数的执行
定义函数的语法:
def 函数的名字(参数一,...参数n)
"""
文档注释
"""
代码一
代码二
代码三
...
return返回值
return参数和注释都是可选择的
def:定义的关键字
函数的名字:用来查找和执行函数
python的命名规范:(不能是数字开头;不能是关键字;只能有数字字母下划线组成,用下划线连接多个单词)
要见名知意,很重要的一点,必须让使用者能够看出来你的功能
文档注释:注释是给程序员看的备注信息,文档注释用于描述函数的具体细节
代码块:具体实现功能的代码,也称为函数体
return:用于将返回值给使用者,函数执行过程中,一旦遇到return立马返回,不再执行后面的代码
内置函数:为了方便我们开发,针对一些简单的功能,python解释器已经为我们定义好了的函数称为内置函数。对于内置函数,我们可以直接拿来使用无须事先定义。比如len(),sum(),max()等等
自定义函数:内置函数提供的功能都是有限的,所以我们需要根据自己的需求,事先指制定好我们的函数来实现某种功能。
无参函数:仅仅是执行一些操作,比如用户交互,打印等(调用时也不需要传入参数)
有参函数:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值和最小值等等(调用时必须传入参数)
空函数:函数中不包含函数体,需要pass忽略这段空函数,否则会报错