python之函数式编程

一、定义和使用

  1、函数时编程的作用:降低代码的重复率,增强代码的可读性

  2、格式:  def  函数名(参数):                   

        函数体

        返回值

    def表示关键字,代码执行到def时,就知道这是函数,程序会将其放置内存不执行它,只有调用函数时才会被执行

    函数名:函数的名称,日后根据函数名来调用函数

    参数:为函数提供数据

    函数体:执行一系列的操作,如:打印,计算0-100的和等

    返回值:当函数执行完毕后,可以给调用返回数据

  3、返回值

    函数是一个功能模块,该功能是否执行成功与否,需要通过返回值来告诉调用者

    需要注意的两点:

      1)若没有return,默认返回None

      2)一旦遇到return,函数内部return 以下的代码都不执行

  4、参数(为函数提供数据,函数根据不同的数据执行不同的功能)

    1)实参、形参

      1、形式参数:在定义函数时,括号里面没有实际值的参数

      2、实际参数:在调用函数时,括号里面有实际值的参数

    2)普通参数

      在调用时,参数数量要和定义时一致,且按顺序一一对应

    3)指定参数

      在调用时,直接将实际值赋给形参,这样就不需要位置一一对应了

def main(a,b):
    print(a) 
main(1,100)                    #普通调用 ,a对应1 ,b对应100         
main(b=1,a=100)                #指定参数的调用,a对应100,b对应1

    4)默认参数(默认参数要放在函数尾部,如:def fun(a=1,b)×     def fun(b,a=1)

      在函数定义时,将形参指定默认值,当调用时没有传入实参,则Ⅹ用默认值,若传入实参则使用实参

        例:def fun1(a,b=1)

          fun1(2)        #没传入实参,b等于默认值1

          fun1(2,3)  #传入实参,b等于实参3

    5)动态参数

      1、在参数前加 * ,表示允许传入多个参数

        a、直接调用,每个实参被当作a的一个元素

def main(*a):
    print(a,type(a))
main([1,2])
结果:([1,2]) <class 'tuple'>    #a 是元组,每个实参就是 a 的一个元素 

        b、在实参前加 * ,实参的每个元素相当于形参中的元素

def main(*a):
    print(a,type(a))
main(*[1, 2])
结果:(1, 2) <class 'tuple'>

      2、在参数前加**,允许传入键值对(**kwargs :kwargs是字典类型)

        a、直接调用

        b、在参数前加**

      3、设置两个参数*args(arguments  参数),**kwargs(key word arguments  关键字参数)

        调用同上两种,键值对则放入kwargs,反之放入args

  5、局部变量和全局变量

    全局变量

      用大写,这样便于区分

      要修改,前加global

    局部变量

      用小写,只能在函数内部调用

 二、参数传递

  python中参数传递是将值的引用传递给形参

    其它语言有两种方式可选择:

      1、传递引用,指向同一个值

      2、重新创建一个值,再传给形参

三、判断对象是不是字符串、列表、元组或字典等数据类型

  isinstance(x,A_tuple):判断对象是不是对应的数据类型

    输入:x表示对象名,A_tuple表示类名(可以是:str、int、tuple、list、dict等)

    功能:判断对象类型

    输出:当对象的数据类型和后面的类名一致时,返回True,否则返回False

>>> isinstance(12,int)
True
>>> isinstance('12',int)
False
>>> isinstance({1:'12'},dict)
True

 

 

posted @ 2018-06-08 23:21  tdh_2  阅读(203)  评论(0编辑  收藏  举报