函数笔记

函数:

    函数文档:

>>> def myfun(name):

    'nihaoa'

    print('hi'+ name +'hello')

>>> myfun.__doc__

'nihaoa'

>>> help(myfun)

Help on function myfun in module __main__:

myfun(name)

    nihaoa


    关键字参数:

>>> def myfun(name,words):

    print(name + '->' + words)


>>> myfun('asd','fds')

asd->fds

>>> myfun(words='fds',name='name')

name->fds

    默认参数:

>>> def myfun(name='asd',words='fds'):

    print(name+'->''words')


>>> myfun()

asd->words

>>> myfun('gg')

gg->words

>>> myfun('gg','pp')

gg->words

    收集参数:

>>> def myfun(*params):

    print('参数的长度是',len(params));

    print('第二个参数是',params[1]);


>>> myfun('aa',1,234,5,567)

参数的长度是 5

第二个参数是 1

>>>def myfun(*params,arg):

    print('参数的长度是',len(params));

    print('第二个参数是',params[1]);

>>> myfun(1,2,3,5,'12sdf',34,arg='haha')

参数的长度是 6

第二个参数是 2


在函数中试图修改全局变量时,python会自动创建一个和全局变量

名字一样的局部变量,结果会和预期的不一样

不要在函数内部去修改全局变量 可以在函数中访问全局变量

如果要在函数中修改全局变量  则要用global定义

    闭包函数:内部函数参数引用外部函数

>>> def FunX(x):

    def FunY(y):

        return x * y

    return FunY

>>> i = FunX(8)

>>> i

.FunY at 0x056F42B8>

>>> type(i)

>>> FunX(8)(5)

40

>>> i(5)

40

>>> def Fun1():

    x = [5]

    def Fun2():

        x[0] *= x[0]

        return x[0]

    return Fun2()

>>> Fun1()

25

用nonlocal 可以用作声明(可以理解为把nonlocal定义的数为全局变量,

而没定义可以理解为是局部变量)

>>> def Fun1():

    x = 5

    def Fun2():

        nonlocal x

        x *= x

        return x

    return Fun2()

>>> Fun1()

25

    lambda  :

>>> g = lambda x : 2*x+1

>>> g(5)

11

>>> g = lambda x,y: x+y

>>> g(1,2)

3

lambda优点:省下函数定义的过程,这样可以不需要专门写一个函数再进行调用,

使用lambda就可以使代码更加精简.  也可以省下取名的时间.


    filter(funtion or None;iterable):

>>> list(filter(None,[1,2,0,False,True]))

[1, 2, True]

#filter函数会过滤掉所有非true的数

>>> def odd(x):

    return x%2

>>> temp = range(10)

>>> show = list(filter(odd,temp))

>>> show

[1, 3, 5, 7, 9]

>>>

lambda 和 filter 结合 

>>> list(filter(lambda x: x % 2 ,range(10)))

[1, 3, 5, 7, 9]

>>>

        map():    ---->映射

>>> list(map(lambda x : x*2,range(10)))

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

你可能感兴趣的:(函数笔记)