一:定义函数
定义函数的格式如下:
def函数名():
代码
# 定义一个函数,能够完成打印信息的功能
def printInfo():
print'------------------------------------'
print' 人生苦短,我用Python'
print'------------------------------------'
二:调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用
# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()
函数参数(一)
现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?
def add2num():
a =11
b =22
c = a+b
print c
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是 函数的参数
<1> 定义带有参数的函数
示例如下:
def add2num(a, b):
c = a+bprintc
<2> 调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
defadd2num(a, b):
c = a+b
print c
add2num(11,22) #调用带有参数的函数时,需要在小括号中,传递数据
调用带有参数函数的运行过程:

4种函数的类型:
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种
1,无参数,无返回值:此类函数,不能接收参数,也没有返回值,一般情况下,打印 提示灯类似的功能,使用这类的函数。
def 函数名():
语句
2, 无参数,有返回:此类函数,不能接收参数,但是可以返回某个数据,一般情况 下,像采集数据,用此类函数。
def 函数名():
语句
return 需要返回的数值
3, 有参数,无返回值:此类函数,能接收参数,但不可以返回数据,一般情况下,对 某些变量设置数据而不需结果时,用此类函数。
def 函数名(形参列表):
语句
4,有参数,有返回值:此类函数,不仅能接收参数,还可以返回某个数据,一般情况 下,像数据处理并需要结果的应用,用此类函数。
def 函数名(形参列表):
语句
return 需要返回的数值
总结:
1,一个函数到底有没有返回值,就看有没有return,因为只有return才可以返回数据
2,在开发中往往根据需求来设计函数需不需要返回值
3,函数中,可以有多个return语句,但是只要执行到一个return语句,那么就意味着这个函数的调用完成
三:函数的嵌套调用:

如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置。
四:局部变量
局部变量,就是在函数内部定义的变量
不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
五:全局变量
<1>什么是全局变量
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。
<2>全局变量和局部变量名字相同问题

<3>修改全局变量
既然全局变量,就是能够在所以的函数中进行使用,那么可否进行修改呢?

<4>总结1:
1,在函数外边定义的变量叫做全局变量。
2,全局变量能够在所有的函数中进行访问。
3,如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错。
4,如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇。
<5>总结2:
1,在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
2,对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
3,对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。
网友评论