1.函数概述
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
2.函数定义和调用
<1>定义函数
定义函数的格式如下:
def 函数名():
代码
demo:
# 定义一个函数,能够完成打印信息的功能
def printInfo():
print( '------------------------------------')
print(' 人生苦短,我用Python')
print( '------------------------------------')
<2>调用函数
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过函数名() 即可完成调用
demo:
# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()
函数的文档说明
>>> def test(a,b):
... "用来完成对2个数求和"
... print("%d"%(a+b))
...
>>>
>>> test(11,22)
33
如果执行,以下代码
>>> help(test)
能够看到test函数的相关说明
'用来完成对两个数的求和'
函数参数(一)
为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数的时候可以让函数接收数据,就解决了这个问题,这就是函数的参数
<1> 定义带有参数的函数
示例如下:
def add2num(a, b):
c = a+b
print(c)
<2> 调用带有参数的函数
以调用上面的add2num(a, b)函数为例:
def add2num(a, b):
c = a+b
print(c)
add2num(11, 22) #调用带有参数的函数时,需要在小括号中,传递数据
<3> 调用函数时参数的顺序
>>> def test(a,b):
print(a,b)
>>> test(1,2)
1 2
>>> test(b=1,a=2)
2 1
>>>
>>> test(b=1,2)
报错:
File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument
>>>
函数参数(二)
1. 缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:
def printinfo( name, age = 35 ):
# 打印任何传入的字符串
print("Name: ", name)
print("Age ", age)
# 调用printinfo函数
printinfo(name="miki" )
printinfo( age=9,name="miki" )
以上实例输出结果:
Name: miki
Age 35
Name: miki
Age 9
注意:带有默认值的参数一定要位于参数列表的最后面。
>>> def printinfo(name, age=35, sex):
... print(name)
...
File "<stdin>", line 1
SyntaxError: non-default argument follows default argument
2.不定长参数
有时可能需要一个函数能处理比当初声明时更多的参数。
这些参数叫做不定长参数,声明时不会命名。
基本语法如下:
def functionname([formal_args,] *args, **kwargs):
"函数_文档字符串"
function_suite
return [expression]
<