第二章 函数
1. 函数式编程
本质:将N行代码拿到别处并起名,以后通过名字就可以找到这段代码并执行
场景:代码重复执行时和代码量特别多,超过一屏,可以选择通过函数进行代码的分割
2. 函数的基本结构
def 函数名(): #函数的定义
函数内容
函数名() #执行函数
def func(): v = [11,22,33] print(0) func() #调用才会被执行,不调用则内部代码不会被执行
3. 函数的参数
基本的参数:可以传递任意个数,任意类型
#1.参数的基本结构 def func(aaa): v = [11,22,33] print(v[aaa]) func(1) #2.位置传参(调用函数并传入参数,传入参数和形参要一致) def func(a1,a2): #形参 print(a1,a2) func(1,2) #传参 #3.关键字传参(关键字传参和位置传参可以混合使用,但位置参数一定要在前面,关键字参数在后面,两个参数之和等于形参) def func(a1,a2): print(a1,a2) func(1,a2=2) func(a2=1,a1=1) #关键字传参之间的顺序可以调换 #4.默认参数 def func(a1,a2=9): #接收两个或一个参数 print(a1,a2) func(1) #输出1,9 func(1,2) #输出1,2 #5.万能参数(不支持关键字传参,只能支持位置传参) 例一: def func(*args): #可接受n个参数 print(args) func(11,22,33) #输出默认为元组 func(*(1,2,3),*[11,22,33]) #把该元组/列表内的元素循环添加到新元组 例二: def func(a1,*args): print(a1,args) func(1,2,3,4,5) #输出为 1,(2,3,4,5) #6.万能关键字参数(输出为字典,不支持位置传参) def func(**kwargs): print(kwargs) func(k1 =1,k2 = 'alex') #输出为{'k1':'v1','k2':'alex'} func(**{'k1':'v1','k2':'alex'}) #把自己输入的字典直接带入 #7.万能综合应用 def func(*args,**kwargs) print(args,kwargs) func(1,2,3,k1=1,k2=2) #输出为(1,2,3),{'k1':'1','k2':'2'} func(111,222,*[1,2],k11='alex',**{'k1':'1','k2':'2'} #输出为(111,222,1,2),{'k11':'alex','k1':'1','k2':'2'}