一、函数定义
def 函数名(形参1,形参2...):
函数体
return 返回值 (可以返回任何东西,一个值,一个变量,或是另一个函数的返回值,如果函数没有返回值,可以省略return语句)
二、函数文档概念
在Python中将函数体内首行字符串作为函数文档,字符串中对函数的功能和参数的含义进行说明,可以使用函数名加成员操作符跟上__doc__的形式返回这个字符串以备使用者查看,也可以通过help(函数名)形式直接打印除这个字符串
1 def function(): 2 '这是函数文档说明,不是定义的字符串' 3 print("这是一首简单的小程序!") 4 5 >>> print(function.__doc__) 6 这是函数文档说明,不是定义的字符串
1 >>> def function(): 2 """这是函数文档说明,不是定义的字符串""" 3 print("这是一首简单的小程序!") 4 >>> print(function.__doc__) 5 这是函数文档说明,不是定义的字符串 6 7 8 >>> def function(): 9 "这是函数文档说明,不是定义的字符串" 10 print("这是一首简单的小程序!") 11 >>> print(function.__doc__) 12 这是函数文档说明,不是定义的字符串 13 14 15 >>> def function(): 16 '这是函数文档说明,不是定义的字符串' 17 print("这是一首简单的小程序!") 18 >>> print(function.__doc__) 19 这是函数文档说明,不是定义的字符串 20 21 22 >>> def function(): 23 """这是函数文档说明,不是定义的字符串""" 24 print("这是一首简单的小程序!") 25 >>> help(function) 26 Help on function function in module __main__: 27 28 function() 29 这是函数文档说明,不是定义的字符串 30 31 >>> def function(): 32 '这是函数文档说明,不是定义的字符串' 33 print("这是一首简单的小程序!") 34 >>> help(function) 35 Help on function function in module __main__: 36 37 function() 38 这是函数文档说明,不是定义的字符串
三、关键字参数
当函数定义时形参比较多时,调用函数时实参要与形参一一对应,所以这时我们可能会把实参和形参的顺序弄乱,所以,使用关键字参数可以有效地避免这一情况,调用时直接把实参值赋给相应的形参变量,这时候就不需要顺序一一对应了。
格式:函数名(形参2=实参2,形参1=实参1)
1 def function(name,action): 2 print("我的名字:%s"%name) 3 print("我会%s"%action) 4 5 未使用关键字参数: 6 function('跑','zz') 7 我的名字:跑 8 我会zz 9 10 使用关键字参数: 11 function(action='跑',name='zz') 12 我的名字:zz 13 我会跑
四、默认关键字参数
在函数定义时,我们给形参赋初值,这样在调用的时候,不赋实参,函数也可以运行
1 def function(name='柯珂柯珂',action='fly'): 2 print("我的名字:%s"%name) 3 print("我会%s"%action) 4 5 6 >>> function() 7 我的名字:柯珂柯珂 8 我会fly 9 >>> function('zz','吃') 10 我的名字:zz 11 我会吃
五、收集参数
1、收集参数在函数定义时,在参数前面多加一个 *(星号),表示该参数变量是一个元组类型,;
2、当*不在所有参数的后面,不需要收集的参数,需要使用关键字指定,* 是不会收集带关键字的参数的;
3、当需要收集带关键字的参数时,可以在定义函数时,在形参的前面使用 **(双星号),这样收集的参数会作为字典类型
1 def function(*name,action): 2 print(name) 3 print("我会%s"%action) 4 5 >>> function(1,2,3,4,5,6,action = 'fly') 6 (1, 2, 3, 4, 5, 6) 7 我会fly 8 >>> def function(**name): 9 print(name) 10 11 >>> function(a = '柯盛涛',b = '柯珂柯珂',c = 12306) 12 {'a': '柯盛涛', 'b': '柯珂柯珂', 'c': 12306}