美文网首页
python学习五

python学习五

作者: 多啦A梦的时光机_648d | 来源:发表于2020-03-20 20:54 被阅读0次

    函数

    1. 定义函数

    def func1():
        print('hello world')
    func1()   ##调用
    hello world
    

    2.函数的参数

    def func2(name):   ##name就是函数func2的参数
        print(name + 'world')
    func2('helo')   ##调用时加参数
    heloworld
    ##
    def add(num1,num2):   ##python的函数可以支持n个,只要你愿意
        result = num1 + num2
        print(result)
    add(1,4)
    5
    ## 参数可以通过关键字参数定义
    def add(num1,num2):  
        result = num1 + num2
        print(result)
    add(num1=1,num2=4)
    5
    

    函数的参数包括形参和实参

    def func2(name):   ##name形参
        print(name + 'world')
    func2('helo')   ##hello就是实参
    heloworld
    

    3.函数的返回值

    def add(num1,num2):
        return (num1 + num2)   ##return执行返回值
    print(add(1,4))
    5
    

    4.函数文档

    def add(num1,num2):
        '这就是函数文档'   ##引号内部的为函数文档
        ## 而这时注释,两者在函数调用中都不打印  ## 井号后面的为注释
        return (num1 + num2)
    print(add(1,4))
    ## 可以利用add.__doc__打印函数文档
    print(add.__doc__)
    '这就是函数文档'
    

    5.默认参数

    def add(num1=1,num2=4):  ## 1和4就是函数的默认参数
        return (num1 + num2)
    print(add())   ##不带参数调用函数也不会报错
    print(add(2,5))  ##带参数调用函数会替换掉默认参数
    5
    7
    

    6.收集参数

    也叫可变参数, 即在参数面前价格星号*

    def test(*params):
        print('参数的长度是:', len(params));
        print('第二个参数是:', params[1]);
    test(1,2,3,4,5,6)
    参数的长度是: 6
    第二个参数是: 2
    

    7.局部变量和全局变量

    count = 5    ##全局变量
    def test():
        count = 10    ##局部变量
        print(count)
    test()
    ## 局部变量可以通过globle关键字改为全局变量
    count = 5
    def test():
        global count    ##改为全局变量
        count = 10
        print(count)
    test()
    

    8.内嵌函数

    内部函数作用域都在外部函数之内

    def fun1():
        print('fun1()正在被调用...')
        def fun2():    ##fun2()函数就是fun1()的内嵌函数
            print('fun2()正在被调用...')
        fun2()
    fun1()
    fun1()正在被调用...
    fun2()正在被调用...
    

    9.闭包

    def funX(x):
        def funY(y):   ##内部函数funY()就是一个闭包
            return x * y
        return funY
    funX(4)
    <function funX.<locals>.funY at 0x00A78FA8>   ##直接调用funX返回的是一个函数,其实就是返回的funY这个函数对象。
    ## 给定两个参数
    def funX(x):
        def funY(y):
            return x * y
        return funY
    funX(4)(5)
    20
    ## 直接调用fun1()会报错,因为x会作为局部变量使用
    def fun1():
        x = 5  ##这里的x=5是在fun2()的外部作用域里,是一个非全局变量的外部变量
        def fun2():
            nonlocal x   ##利用nonlocal关键字让x不是局部变量
            x *= x
            return x
        return fun2()   ##不加nonlocal的话,在执行renturn fun2()时,即会出现局部变量x在没有被赋值之前被调用。
    print(fun1())
    

    10.lambda表达式

    python支持lambda关键字创建匿名函数

    def fun(x):
        return x * 2
    fun(2)
    ##lambda则可以精简函数定义
    lambda x : x * 2
    <function <lambda> at 0x00CD8F60>   ##可以看出返回的是一个函数对象。使用的时候只需要赋值即可。
    
    g = lambda x : x * 2
    g(2)
    4
    ## 也可以是多个参数
    g = lambda x, y: x * 2 + y
    g(2,4)
    8
    

    11.两个BIF

    • filter

    filter(function or none, interable), 两个函数,一个是函数,另一个为可迭代的序列

    ##筛选奇数
    def odd(x):
        return x % 2
    temp = range(0,10)
    print(list(filter(odd,temp)))   ##odd为筛选条件,temp为可迭代的集合
    [1,3,5,7,9]
    ##lambda
    print(list(filter(lambda x : x % 2, range(10))))
    [1,3,5,7,9]
    
    • map

    类似于filter,也是两个参数

    print(list(map(lambda x : x * 2, range(10))))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    

    相关文章

      网友评论

          本文标题:python学习五

          本文链接:https://www.haomeiwen.com/subject/lzyhyhtx.html