参考资料:http://www.cnblogs.com/vamei
函数最重要的目的是方便我们重复使用相同的一段程序
将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句。
函数的定义
首先,先定义一个函数:
def square_sum(a,b): c=a**2+b**2 return c
这个函数的功能是计算两个数的平方和
首先,def这个关键字是为通知python:在这个定义了函数。square_num是函数名。
括号里的a,b是函数的参数,参数可以有多个,也可以没有(但括号必须有)
函数同循环一样需要用缩进和冒号来表示隶属关系
c=a**2+b**2 #这是函数内部的运算
return c #返回c的值,也就是输出,python中允许没有返回值,也就是可以没有return
return可以返回多个的值,中间用逗号隔开,相当于返回一个tuple(定值表)
return a,b,c #相当于return(a,b,c)
函数的调用和参数传递
在定义函数之后,可以在后面使用:
print(square_sum(3,4))
python通过位置,知道3对应a,4对应b,然后把参数传递给函数square_sum()。
a=1def change_integer(a): a=a+1 return aprint(change_integer(a))print(a)#-----------------------------(python中#后为注释)b=[1,2,3]def change_list(b): b[0]=b[0]+1 return bprint(change_list(b))print(b)
第一个例子,将一个整型变量传递给函数change_integer(),函数对它进行操作,但原整型变量a的值并没有变化
第二个例子,将一个表传递给函数change_list(),函数对它进行操作,原来的表b发生变化
对基本类型的变量,变量传递给函数,函数会在内存中复制一个新变量,从而不影响原来的变量(我们称此为值传递)
但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量(我们称此为指针传递)