Python函數基礎

一、定義函數java

使用def語句,後跟函數名、括號、冒號,括號中有時能夠帶有參數,而後換行縮進,編寫函數體,返回值用return語句python

例如:數組

def test(x):
    if x > 0:
        return x
    else:
        return abs(x)

print(test(4))
print(test(-5))

二、參數函數

1)位置參數ui

例如:spa

def func(x,y,z):
    print(x)
    print(y)
    print(z)

func(1,2,3)
func(5,6)

執行結果:code

1
2
3
  File "F:/python3/函數.py", line 7, in <module>
    func(5,6)
TypeError: func() missing 1 required positional argument: 'z'

能夠看出這裏輸入的參數少了一個便會報錯blog

2)默認參數遞歸

默認參數的用處仍是挺多的,例如,咱們填寫信息時,有的信息是默認的,好比你所在的國家不填就默認是中國。it

例如:

def func(name,sex,country='CHINA'):
    print(name,sex,country)

func('Devilf','boy')
func('GY','girl',country='USA')

執行結果:

C:\Python36\python3.exe F:/python3/函數.py
Devilf boy CHINA
GY girl USA

設置默認參數須要注意的地方:

1、默認參數必須在必選參數後面

2、當函數有多個參數時,能夠將不常常變得參數設置成默認參數

3)可變參數

可變參數就是傳入的參數的個數是不固定的,可變的,例如:

def func(*args):
    print(args)

func(1)
func(1,2,3,4,5)
func([1,2,3,'a','b','c'])
func(1,2,3,'a','a',1)

執行結果:

C:\Python36\python3.exe F:/python3/函數.py
(1,)
(1, 2, 3, 4, 5)
([1, 2, 3, 'a', 'b', 'c'],)
(1, 2, 3, 'a', 'a', 1)

能夠看出可變參數輸出的是一個元組,無論咱們輸入多少參數,均可以進行輸出

4)關鍵字參數

關鍵字參數和可變參數很像,只不過一個輸出的是元組,一個是字典,例如:

def func(name,sex,**kwargs):
    print(name,sex,kwargs)

func('Devilf','boy',country='china',age=24)

執行結果:

C:\Python36\python3.exe F:/python3/函數.py
Devilf boy {'country': 'china', 'age': 24}

5)參數組合

參數組合是有順序的,順序爲:

必選參數、默認參數、可變參數、關鍵字參數

例如:

def func(a,b,c='default',*args,**kwargs):
    print('a=',a)
    print('b=',b)
    print('c=',c)
    print('args=',args)
    print('kwargs=',kwargs)
print('------1---------')
func(1,2)

print('-------2---------')
func(1,2,c=3)

print('--------3----------')
func(1,2,c=3,args=('python','java'),name='devilf',sxe='boy')

print('---------4------------')
func(1,2,3,'a','b','c',n1='name',n2='sex',n3='age')

執行結果:

C:\Python36\python3.exe F:/python3/函數.py
------1---------
a= 1
b= 2
c= default
args= ()
kwargs= {}
-------2---------
a= 1
b= 2
c= 3
args= ()
kwargs= {}
--------3----------
a= 1
b= 2
c= 3
args= ()
kwargs= {'args': ('python', 'java'), 'name': 'devilf', 'sxe': 'boy'}
---------4------------
a= 1
b= 2
c= 3
args= ('a', 'b', 'c')
kwargs= {'n1': 'name', 'n2': 'sex', 'n3': 'age'}

能夠看出,參數組合時,每一個參數都須要對應,位置參數、默認參數這兩個參數特別須要注意

三、遞歸函數

遞歸函數就是本身調用本身。

例如:

def func(x):
    if x == 1:
        return 1
    else:
        return x * func(x - 1)
a = func(3)
print(a)

這裏即是在函數裏本身調用本身,執行過程大概是這樣的:

大概就是這麼一個形式,畫一個流程圖來理解下:

 

四、高階函數

變量能夠指向函數,函數的參數能接收變量,那麼一個函數就能夠接收另外一個函數做爲參數,這種函數稱之爲高階函數

例如:

def func(x,y,f):
    return f(x) + f(y)
a = func(2,-3,abs)
print(a)

這裏abs屬於一個內置函數,func是自定義函數,也就是說func這個函數接收了abs這個內置函數做爲本身的一個參數。

相關文章
相關標籤/搜索