一 函数的基本概念和基础
1、为什么要有函数?没有函数带来的困扰?
组织结构不清晰,可读行差
代码冗余
可扩展性差
2、什么是函数
具备某一功能的工具就是函数
事先准备工具就是函数的定义
拿来就用,重复使用就是函数的调用
3、 函数的分类
内置函数: len,max(10,11),help 函数名(查看函数的注释信息,如下)
自定义函数:def
语法:
def 函数名 (参数1,参数2,。。。。) :
‘’‘注释信息’‘’
函数体
return
二 自定义函数
1、一个小例子引出函数
2、定义阶段都发生了什么事
只检测语法,不执行代码
3、函数的使用: 先定义后调用
4、定义函数的三种形式
1)第一种: 无参函数
2)第二种:有参函数
3)第三种: 空函数
5 、函数的返回值
return:函数内可以有多个return,但是只能执行一次return,执行return,函数就立即结束,并且return后的值当做本次调用的结果返回
return特点:
1) 返回的值没有类型的限制
2) ① 没有return 返回None
② return 一个值: 值本身
③return 多个值:返回元组
6、函数调用的三种形式
7、函数的参数
函数的参数分为两种:
形参:在定义阶段括号内指定的参数 #相当于变量名
实参:在调用阶段括号内传入的值称之为实参 # 相当于值
在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定
8、在python中参数的分类
1)位置参数:按照从左到右的顺序依次定义的参数
位置形参:必须被传值,多一个少一个都不行
位置实参:与形参一一对应传值
2)关键字参数:在函数调用时,按照key=value 的形式定义的实参
特点:指明道姓的给形参传值,不在依赖位置
注意:关键字实参必须在位置实参的后面,不能为同一个参数赋值多次
3) 默认参数: 在函数定义阶段,就已经为参数赋值了
特点:定义阶段已经有值意味着调用阶段可以不用传值
位置参数经常用于变化的参数,而默认参数指的是不经常变化的参数
注意:
①默认参数必须放在位置参数的后面
②默认参数的值只在定义阶段被赋值一次
③ 默认参数的值通常应该是不可变类型
4) 可变长参数
在调用函数时,实参值的个数不固定
实参的形式有:位置实参和关键字实参 位置实参对应*args ,关键字实参对应**kwargs
形参的解决方案:* ,**
* 的用法python界都是通用*args代表*z 的位置,下面截图没有改过来,就是为了说明,*args并不代表特定的,只是python的一种习惯
*args自己改过来 多出来的参数以元组的形式存
**kwargs 多出来的以字典的方式存
综合用法:
5)命名关键字参数(了解):指的是定义在*后的参数,该参数必须被传值,必须按照关键字的方式传值(除非有默认值)