Python之函數

來源:互聯網
上載者:User

標籤:rgs   code   關鍵字   描述   position   turn   可見   返回   傳回值   

python函數的定義方式:
def 函數名(參數):  ‘‘‘函數描述‘‘‘    函數體    ...    return 傳回值

樣本:

def test(x,y):    ‘‘‘求x的y次冪‘‘‘    return x**yres=test(2,3)  #傳入位置參數print(res)res=test(y=3,x=2)  #傳入關鍵字參數print(res)#------------------------------------88
函數參數的相關:

  位置參數特點:必須一一對應,實參數量等於形參數量。

  關鍵字參數特點:無須一一對應,實參數量等於形參數量。

  位置參數必須在關鍵字參數左邊:

def test(x,y,z):    ‘‘‘求xyz之和‘‘‘    return x+y+zres=test(2,3,z=5)  #8res=test(2,3,y=5)  #關鍵字參數傳入y前已有位置參數3傳入,故報錯res=test(x=2,3,5)  #關鍵字參數在位置參數前傳入,報錯

  可變參數:*args, **kwargs

  *args樣本:

def test(*args):    ‘‘‘不定數求和‘‘‘    s=0    for i in args:   #args是元組形式        s+=i    return sres=test(1,2,3)print(res)#-------------------------------6

  *號的作用:傳入的位置參數以元組形式(1,2,3)傳給args,*args將args元組中的值拆分為位置參數傳給函數:

def test(x,y,z):    ‘‘‘求xyz之和‘‘‘    return x+y+zl=(1,2,3)res = test(*l)print(res)#6l=(1,2,3,4)test(*l)print(res)#TypeError: test() takes 3 positional arguments but 4 were given
#位置參數有3個,l將其中的元素拆分開來後有4個參數,故報錯

  *args與位置參數混合使用:

def test(x,y,*args):  #位置參數必須在*args前,否則報錯    print(‘x:%s y:%s args:%s‘ %(x,y,args))test(1,2,3,4,5)#‘x:1 y:2 args:(3, 4, 5)‘#傳入的實參中,依次傳入位置參數和*args

  **kwargs樣本:

def test(**kwargs):    print(kwargs)    print(‘x:%d  y:%d‘ %(kwargs[‘x‘],kwargs[‘y‘]))test(x=1, y=3)#--------------------------{‘x‘: 1, ‘y‘: 3}  #可見函數將關鍵字參數打包成字典傳給了kwargsx:1  y:3

  **號的作用:傳入的關鍵字參數以字典的形式賦給kwargs,**kwargs將字典拆分成關鍵字參數的形式傳給函數。

  位置參數,*args,**kwargs的混合使用:

def test(x, y, *args, **kwargs):    print(‘x:%s y:%s args:%s kwargs:%s‘ %(x, y, args, kwargs))test(1,2,3,4,5,g=8,m=6)#x:1 y:2 args:(3, 4, 5) kwargs:{‘g‘: 8, ‘m‘: 6}#注意事項,傳參過程中,關鍵字參數不可重複傳給已經存在的位置參數。否則報錯,即形參不可重複傳值。
#x, *args, **kwargs順序不可置換

 

Python之函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.