python學習之【第八篇】:Python中的函數基礎

來源:互聯網
上載者:User

標籤:...   代碼   利用   中間   實參   文法   參數傳遞   python   設定   

1.前言

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼片段。函數能提高應用的模組性,和代碼的重複利用率。

2.函數的定義

定義函數時需要遵守以下規則:

  • 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括弧 ()。
  • 任何傳入參數和自變數必須放在圓括弧中間,圓括弧之間可以用於定義參數。
  • 函數的第一行語句可以選擇性地使用文檔字串—用於存放函數說明。
  • 函數內容以冒號起始,並且縮排。
  • return [運算式] 結束函數,選擇性地返回一個值給調用方。不帶運算式的return相當於返回 None。

文法:

def 函數名(參數1,參數2,參數3,...):                       '''注釋'''    函數體    return 返回的值
3.函數的調用

函數的調用:函數名加括弧

  1. 先找到名字
  2. 根據名字調用代碼
4.函數的參數

調用函數時可使用的正式參數類型:

  • 位置參數
  • 關鍵字參數
  • 預設參數
  • 不定長參數
位置參數

位置參數,也叫必需參數,在調用函數時位置參數必須傳值,並且必須以正確的順序和相同的數量傳入傳入。

def func(name,age):    print ('我叫%s,我今年%s歲了' %(name,age))    func('張三',18)#輸出'我叫張三,我今年18歲了'
關鍵字參數

以“參數名 = 參數值”的形式作為傳入函數稱為關鍵字參數,使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解譯器能夠用參數名匹配參數值。

def func(name,age):    print ('我叫%s,我今年%s歲了' %(name,age))    func(age=18,name='張三')#輸出'我叫張三,我今年18歲了'
預設參數

在定義函數時,如果某些參數的值不會經常變化,可以將其設定為預設參數,調用函數時,如果給預設參數傳遞了實參,則使用傳遞來的實參,如果沒有傳遞實參,則會使用預設參數。

# age為預設參數,預設為18def func(name,age=18):    print ('我叫%s,我今年%s歲了' %(name,age))func(age=28,name='張三')    #age傳了28,則使用傳來的28func(name='李四')          #age沒有傳參,則使用預設的18#輸出'我叫張三,我今年28歲了''我叫李四,我今年18歲了'
不定長參數

如果需要傳給函數的參數很多,並且在函式宣告時不確定在調用時會傳入多少個參數,這種情況下,就要使用到不定長參數了
不定長參數使用*args和**kwargs來接收:

  • 加單星號(*)的變數*args用來接收除去索引值對以外的所有參數,以元組形式儲存;
  • 加雙星號(**)的變數**kwargs用來接收具名引數,即形如key=value的參數,以字典形式儲存;
def func(a,b,*args,**kwargs):    print(a)    print(b)    print(args)    print(kwargs)func(1,2,3,4,5,6,w=7,j=8)#輸出12(3, 4, 5, 6){'w': 7, 'j': 8}
5.案例

編寫一個求和函數,計算使用者傳入的所有參數之和,不能限制使用者傳入參數的個數

def sum(*args):    res = 0    for i in args:        res += i    return resprint(sum(1,2)) print(sum(1,2,3,4,5,6,7,8,9))   #輸出3 45

python學習之【第八篇】: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.