第二章 函数

第二章 函数

  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'}

   4.函数的嵌套和作用域

猜你喜欢

转载自www.cnblogs.com/parallel-Y/p/10908777.html