函数的意义
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内置函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
函数的定义函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
如def fun(形参):
"内容"
return True
fun(实参)
函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
最简单的例子def fun():
print "OK"
fun()
函数参数
定义函数时,申明的是形式参数简称形参,调用函数时,传递的参数是实际参数简称实参。而形参又可以分为四种必备参数
关键字参数
默认参数
不定长参数
必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样def f1(a):
print "OK"
f1()
def f2(a,b)
print(a+b)
f2(3+4)
返回结果:OK和7
注:调用必备参数时,必须实参和形参位置对应,否则会报错。
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。def info(name,age):
print "Name %s"%name
print"Age %s"%age
info("flash",18)
info("aa",19)
输出结果Name flash
Age 18
Name aa
Age 19
默认参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。def info(name,age,sex="male"):
print"Name %s"%name
print "Age %s"%age
print "Sex %s"%sex
info("flash",18)
info("aa",19,sex="female")
输出结果对比Name flash
Age 18
Sex male
Name aa
Age 19
Sex female
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数(又称动态参数),和上述2种参数不同,声明时不会命名。一种是无名名字参数,另一种是有命名参数。无命名参数(输出的是元组)
def add(*args):
sum = 0
for i in args:
sum += i
print(sum)
add(1,2,3,4,5)
有命名参数(输出的是字典)
def fun(**kwargs):
for i in kwargs:
print "%s:%s"%(i,kwargs[i])
fun(name=