函數與函數式編程

#面向對象:特色:類(class)#面向過程:過程(def)#函數式編程:函數(def)#定義函數:def func1():#    """test...."""    print('in the func1')    return 0#定義過程def func2()    """test2.........."""    print('in the func2')#調用1,x=func1();y=func2()#過程和函數均可以調用,過程就是沒有返回值的函數。# 面向過程的程序設計方法就是用一個個def定義的過程拼接在一塊兒。把一段段邏輯,一段段功能包含到一個def定義的過程當中,用的時候調用#定義函數三大優勢:代碼重用,減小重複代碼;保持一致;可擴展性def test1():    print('in the test1')def test2():    print('in the test2')    return 0def test3():    print('in the test3')    #return 1,'hello',['alex','wupeiqi'],{'name':'alex'}    return  test2#能夠return,test2x=test1()y=test2()z=test3()print(x)print(y)print(z)#返回值數=0:返回none#返回值數=1:返回object#返回值數>1:返回tuple(一個元組,return的多個值撞到一個元組中)#爲何要返回值:由於須要一個執行結果,後續程序可能須要根據其結果進一步操做#——————————————————————有參數的函數--------------------------------------------------------def test(x,y,z):    print(x)    print(y)    print(z)# test(y=2,x=1) #關鍵字調用,與形參順序無關# test(1,2)  #位置參數調用,與形參一一對應,1,2是實參,x,y是形參#test(x=2,3)test(3,z=2,y=6)#關鍵字和位置參數同在,以位置調用爲首標準。關鍵參數是不能寫在位置參數前面的!!#-----------------------------------------------------------------------------------------------#*args:接受N個位置參數,轉換成元組形式# def test(*args):#     print(args)## test(1,2,3,4,5,5)# test(*[1,2,4,5,5])#  args=tuple([1,2,3,4,5])# def test1(x,*args):#     print(x)#     print(args)## test1(1,2,3,4,5,6,7)#**kwargs:接受N個關鍵字參數,轉換成字典的方式# def test2(**kwargs):#     print(kwargs)#     print(kwargs['name'])#     print(kwargs['age'])#     print(kwargs['sex'])## test2(name='alex',age=8,sex='F')# def test3(name,**kwargs):#     print(name)#     print(kwargs)## test3('alex',age=18,sex='m')# def test4(name,age=18,**kwargs):#     print(name)#     print(age)#     print(kwargs)## test4('alex',age=34,sex='m',hobby='tesla')def test4(name,age=18,*args,**kwargs):#參數組必定放在後面    print(name)    print(age)    print(args)    print(kwargs)    logger("TEST4")def logger(source):    print("from %s" %  source)test4('alex',age=34,sex='m',hobby='tesla')#---------------------------------------------------高階函數------------------------------------------------------#變量能夠指向函數,函數的參數能接收變量,那麼一個函數就能夠接收另外一個函數做爲參數,這種函數就稱之爲高階函數。def add(a,b,f):#等於把f替換成abs    return f(a)+f(b)res=add(3,-6,abs)print(res)
相關文章
相關標籤/搜索