在开发程序时,又是会用到一段代码多次,但是一遍一遍敲会很麻烦,那么就可以用函数把这段代码打包起来,后面只需要调用函数就可以实现代码的功能,python中提供了许多内建函数,比如print(),函数也可以自定义,就是自己打包一段自己写的代码,在之后的开发中重复使用。
-
函数的使用分两部分:
定义函数:封装 独立的功能
调用函数:享受 封装 的成果- 定义函数的格式:
def 函数的名称():
需要打包的代码
- 定义完函数后只需要调用就好了
直接输入 函数名(): 就可以调用
注意:函数的定义必须在函数调用的上方,代码是从上往下执行的,必须要让函数先存在,才能调用,否则程序会报错!
-
函数的参数
在定义函数时,可以看到我们在函数名后面输入了一个小括号,这个小括号就是用来传参数的,参数就是函数中的变量,可以增加函数的可用性。
函数分形参和实参:
形参——定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用
实参——调用 函数时,小括号中的参数,是用来把数据传递到 函数内部 用的
-
函数的返回值
return语句表示在执行完函数后会给调用者返回一个结果,并退出函数,不带参数值的return语句返回None,在调用函数时,需要一个变量来接受返回的结果。
举个栗子,还是求和:
代码如下
def back(a,b):
return a+b
sum = back(1,2)
print(sum)
-
函数根据有无返回值,有无参数可分为四种:
1.无参数,无返回值
2.无参数,有返回值
3.有参数,无返回值
4.有参数,有返回值
-
-
函数嵌套
函数嵌套即为在函数中调用其他函数
使用函数嵌套时,代码在调用 函数1 时遇到调用 函数2 就会先执行完 函数2 的代码才会继续执行 函数1 的代码。 -
函数的全局变量和局部变量
变量起作用的代码范围称为变量的作用域,不同作用域内同名变量之间互不影响就像不同文件夹的同名文件间互不影响一样。一个变量在函数外部定义和在内部定义,其作用域是不同的,函数内部定义的变量一般称为局部变量在函数外部定义的变量一般称为去全局变量。
局部变量
- 局部变量,就是函数内部定义的变量
- 不同的函数,可以定义相同的名字的局部变量,但是各用个的互不影响
- 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是他的作用
在函数内部定义的普通变量值在该函数内起作用,当函数运行结束后,在其内部定义的局部变量将被自动删除而不可访问。在函数内部定义的全局变量当函数结束后仍然存在并且可以访问
全局变量
- 如果一个变量,既能在一个函数中使用,也能在其他函数中使用,这样的变量就是全局变量
在函数中修改全局变量
1、在函数外边定义的变量叫做全局变量
2、全局变量能够在所有的函数中进行访问
4、如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
5、如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,强龙不压地头蛇1、在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
2、对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
3、对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。