2018.4.20(python)函数的定义与使用 (及lambda函数)

函数是一段具有特定功能的,可重用的语句组

函数定义时,所指定的参数是一种占位符  ,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号

参数是输入,函数体是处理


函数可以有参数,也可以没有,但必须保留括号

def <函数名>():

        <函数体>

        return<返回值>


可选参数,函数定义时可以为某些参数指定默认值,构成可选参数

def <函数名>(<非可选参数>,<可选参数>):

        <函数体>

        return<返回值>

可选参数,即在调用时可传值,也可以不传值进去,不传值时为默认值


例:

        def fact(N,M=1):        M=1为可选参数,若不传值时,则默认为M=1

           .......

           return



可变参数传递

    def fact(n,*b):                  *b为可变参数

        .........                            实际调用时可以用 fact(10,3)  也可以fact(10,3,5,8)

        return                            *b的意思为参数的数量是不确定的,可以改变的    



参数传递的方式:

  def fact(n,m)              

        ........

        return

①按照位置传递  即 fact(10,5)则传递进去时 n=10,m=5

②按照名称传递  即  fact(m=5,n=10)  则传递进去时 n=10,m=5



函数的返回值  ———函数可以返回0个或多个结果

return   s,m,n       返回值之间用逗号相隔   (s,m,n)




在函数内部使用全局变量 要使用保留字  global用来声明它是全局变量而不是局部变量

基本数据类型,无论是否重名,局部变量与全局变量不同


局部变量为组合数据类型且未创建,等同于全局变量

ls=["F","f"]                      // 使用[]真实创建了一个全局变量列表ls  必须用[]才能真实创建一个列表类型

def func(a):                   //创建一个函数

    ls.append(a)               // <列表名>.append('a') 用此方式 即在列表后添加一个元素 

    return                        //此处ls是列表类型,未真实创建,则等同于全局变量

func("c")                      //全局变量ls被修改   

print(ls)

运行结果为 ['F','f','C']

即一个组合数据类型在函数中并没有被真实创建,而名字又与全局变量相同,那么它就是全局变量


ls=['F','f']                       //通过使用[]真实创建了一个全局变量列表ls

def func(a):

        ls=[]                        //此处ls是列表类型,真实创建  在这函数中ls真实创建了 就为局部变量

        ls.append(a)

        return

func("c")                        //局部变量ls被修改

print(ls)

运行结果 ['F','f']                  //因为只改变了局部变量 所以全局变量不受印象  即形参改变而实参并不影响


/*******************************************************************************/

<函数名>=lambda<参数>:<表达式>

等价于

def<函数名>(<参数>):

    <函数体>

    return<返回值>


例子:

>>> f=lambda x,y:x+y
>>> f(10,15)
25


猜你喜欢

转载自blog.csdn.net/weixin_41815104/article/details/80020789