函数是重用的程序段。封装某块语句并赋予一个名称,然后可在程序的任何地方使用这个名称任意多次地运行该代码块。python内部就封装了很多代码块作为内建函数如len和range。
1、定义函数
使用def关键字:
def sayHello(): #定义——关键字+自定义函数名():
print 'hello' #封装
sayHello() #调用
参数:函数取得的参数是你提供给函数的值,这样函数就可以利用这些值 做 一些事情。这些参数像变量一样,只不过它们的值是在我们调用函数的时候定义的,而非在函数本身内赋值。
形参与实参:函数中的参数名称为 形参(当初定义的) 而你提供给函数调用的值称为实参 。
局部变量
当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
全局变量
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。
global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。
默认参数值:在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
关键字参数:传参中使用赋值而非位置来指定函数中的参数。
可变参数:定义的函数里面能够有任意数量的量,也就是参数数量是可变的,这可以通过使用星号来实现。eg:
def A(a=5,*numbers,**phonebook):
print('a',a)
for n in numbers:
print('n',n)
for x,y in **phonebook:
print(x,y)
print(A(10,1,2,3,Jack=1123,,John=2231,Inge=1560))
输出
a 10
n 1
n 2
n 3
Jack 1123
John 2231
Inge 1560
None #变量没有值返回None
'当我们声明一个诸如*param的星号参数时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。类似地,当我们声明一个诸如**param的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为param的字典(Dictionary)。
return语句
return语句用于从函数中返回,也就是中断函数;我们也可以选择在中断函数时从函数中返回一个值。
如果return语句没有搭配任何一个值则代表着返回 None。None在 Python 中一个特殊的类型,代表着虚无。举个例子, 它用于指示一个变量没有值,如果有值则它的值便是None(虚无)。
每一个函数都在其末尾隐含了一句return None,除非你写了你自己的return语句。
找到在线新版本了!crossin.me真够坑爹的,居然把15年前的版本放上去让初学者跳!!!!!
新版本网址为2017简明python教程中文版