什么是函数
在开发程序时,需要某块代码多次,但是为了编码提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
函数的定义和调用
格式:
def 函数名():
执行语句
函数名() #调用函数
定义好参数后,想要使用时,直接调用参数就行了
函数参数
格式:
def 函数名():
代码块
函数名(值1,值2)
定义时小括号中的参数,用来接收参数用的,称为“形参”
调用时小括号中的参数,用来传递给函数用的,称为“实参”
关键字参数
格式:
def 函数名(参数1,参数2):
代码块
函数名(参数1=值1,参数2=值2)
参数调用时可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面
如果关键字参数在位置参数之前,将会报错
缺省参数
在形参中默认有值的参数,被称为缺省参数
不定长参数
有时需要一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命名
加(*)的变量a会存放所有的未命名的变量参数,a为元组
加(**)的变量b会存放命名参数,即形如key=value的参数,b为字典
参数位置顺序
格式:
def fun(位置参数,*args,缺省参数,**kwargs):
代码块
fun(参数值)
如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有 **kwargs的话,**kwargs必须是最后的
函数返回值
想要在函数中把结果返回给调用者,需要在函数中使用return
return除了能够将数据返回之外,还有一个隐藏的功能:结束函数
一个函数中可以有多个return语句,但是只要有一个return语句被执行到,那么这个函数就会结束了,因此后面的return没有什么用处
return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据
函数类型
4种函数的类型
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种
1. 无参数,无返回值
2. 无参数,有返回值
3. 有参数,无返回值
4. 有参数,有返回值
函数根据有没有参数,有没有返回值可以相互组合定义函数时,是根据实际的功能需求来设计的,所以不同开发人员编写的函数类型各不相同
函数的嵌套调用
一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
局部变量
局部变量就是在函数内部定义的变量,作用范围就是这个函数内部,只能在这个函数中使用,在函数外部不能使用
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储
当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了
全局变量
能在函数内部使用也能在函数外部使用的变量叫做全局变量,
全局变量在函数外部定义
全局变量能够在所有的函数中进行访问
当函数内出现的局部变量与全局变量相同是,函数内部中的 变量名=数据此时理解为定义了一个局部变量,而不是修改全局变量的值
全局变量的修改
在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据 也理解为对全局变量进行修改,而不是定义局部变量
global 变量