一、函数是什么?
先举一个例子:修理工工作前需要准备好工具箱里面放好锤子,扳手,钳子等工具,然后遇到锤钉子的场景,拿来锤子用就可以,而无需临时再去制造一把锤子。
修理工===>程序员
具备某一功能的工具===>函数
要想使用工具,需要事先准备好,然后拿来就用且可以重复使用
要想用函数,需要先定义,再使用
所以,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print(),len()等。但你也可以自己创建函数,这被叫做用户自定义函数。
二、函数分类
1、内置函数
为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()ps:我们将会在最后详细介绍常用的内置函数。
2、自定义函数
很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可
三、函数的定义与调用
#定义的语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 #调用 函数名(参数) #函数调用的三种形式: #1 语句形式:foo() #2 表达式形式:3*len('hello') #3 当中另外一个函数的参数:range(len('hello')) #函数使用的原则:先定义,再调用
四、函数的返回值(return)
无return->None
return 1个值->返回1个值
return 逗号分隔多个值->元组
什么时候该有返回值?
调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值
通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果
什么时候不需要有返回值?
调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值
通常无参函数不需要有返回值
五、函数的参数
5.1、形参与实参
形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
def sq(data): #形参 print(data) ret=123 sq(ret) #实参
5.2、位置参数
def sq(x,y): return (x+y) x=10 y=20 sq(10,20) sq(x=10,y=20) sq(10,y=20)
5.3、默认参数 (形参在定义时就已经为其赋值)
def fun(x,y=2): print(x+y) fun(2) #使用默认参数 fun(2,4) #使用指定参数 #默认参数需要放在参数列表最后
5.4、动态参数(*args,**kwargs)
def foo(*args,**kwargs): print( 'args=', args) print('kwargs=', kwargs) foo(1,2,3) foo(a=1,b=2,c=3) foo(1,'b','c',a=1,b='b',c='c') foo(*["a","b","c"],**{"a":"a","b":"b"}) #列表、字典
ps:参数顺序(位置参数,*args,默认参数,**kwargs)
执行结果: