python 基礎---函數

來源:互聯網
上載者:User

標籤:col   基礎   必須   列表   傳遞   字串   輸出   strong   none   

函數

定義了之後,可以在任何需要它的地方調用
傳回值
傳回值的3種情況
  沒有傳回值 —— 返回None
    不寫return
    唯寫return:結束一個函數的繼續
    return None —— 不常用
  返回1個值
    可以返回任何資料類型
    只要返回就可以接收到
    如果在一個程式中有多個return,那麼只執行第一個
  返回多個值
    用多個變數接收:有多少傳回值就用多少變數接收
    用一個變數接收: 得到的是一個元組

return結束函數
 1 #唯寫return:結束一個函數的繼續,不會輸出print(‘=‘*10) 2 #和break的區別,break是跳出迴圈,return是結束函數 3 def func(): 4     l = [‘哈哈‘,‘哦哦‘] 5     for i in l: 6         print(i) 7         if i==‘哦哦‘: 8             return 9     print(‘=‘*10)10 ret = func()11 print(ret)

傳回值

 1 def func(): 2     return {‘k‘:‘v‘} 3 print(func()) 4  5 def func2(): 6     return 1,2,3  #return 1,2,3 7 r1,r2,r3 = func2() 8 print(r1,r2,r3)#三個接受 9 10 r= func2()#一個變數接受11 print(r)#輸出元組
參數
  沒有參數
    定義函數和調用函數時括弧裡都不寫內容
  有一個參數
    傳什麼就是什麼
  有多個參數
    位置參數

站在實參的角度上:
  按照位置傳參
  按照關鍵字傳參
  混著用可以:但是 必須先按照位置傳參,再按照關鍵字傳參數
     不能給同一個變數傳多個值

站在形參的角度上:
  位置參數:必須傳,且有幾個參數就傳幾個值
  預設參數: 可以不傳,如果不傳就是用預設的參數,如果傳了就用傳的


只有調用函數的時候:
  按照位置傳 : 直接寫參數的值
  按照關鍵字: 關鍵字 = 值

定義函數的時候:
  位置參數 : 直接定義參數
  預設參數,關鍵字參數 :參數名 = ‘預設的值‘
  動態參數 : 可以接受任意多個參數
        參數名之前加*,習慣參數名args,
        參數名之前加**,習慣參數名kwargs
  順序:位置參數,*args, 預設參數, **kwargs
參數
1 def my_len(s):  #自訂函數只需要0個參數,接收參數,形式參數,形參2     i = 03     for k in s:4         i += 15     return i  #傳回值6 7 ret = my_len(‘金老闆小護士‘)  #傳遞參數:傳參,實際參數,實參8 ret = my_len([1,2,3,4,5])     #傳遞參數:傳參9 print(ret)
一個參數
 1 def f2(l1): 2     f1(l1) 3     for i in l1: 4         print(i) 5  6 def f1(l1): 7     for i in l1: 8         print(i) 9 10 f2([1,2,3,4])
多參數
1 def classmate(name,sex):2     print(‘%s : %s‘%(name,sex))
預設參數
1 classmate(‘二哥‘,‘男‘)2 classmate(sex=‘男‘,name = ‘二哥‘)3 4 def classmate(name,sex=‘男‘):5     print(‘%s : %s‘%(name,sex))6 7 classmate(‘二哥‘)8 classmate(‘朗哥‘,sex= ‘女‘)

動態參數:可以接受任意多個參數
*args   : 接收的是按照位置傳參的值,組織成一個元組**kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典
動態參數  *args    #可以接受任意多個參數
1 def sum(*args):   #參數名之前加*,習慣參數名args2     n = 03     for i in args:4         n+=i5     return n6 7 print(sum(1,2))8 print(sum(1,2,3))9 print(sum(1,2,3,4))
動態參數  **kwargs    #可以接受任意多個參數
1 def func(**kwargs):  #參數名之前加**,習慣參數名kwargs2     print(kwargs)3 4 func(a = 1,b = 2,c =3)5 func(a = 1,b = 2)6 func(a = 1)
動態參數有兩種:可以接受任意個參數
1 *args   : 接收的是按照位置傳參的值,組織成一個元組2 **kwargs: 接受的是按照關鍵字傳參的值,組織成一個字典3 args必須在kwargs之前4 5 def func(*args,default = 1,**kwargs):6     print(args,kwargs)7 8 func(1,2,3,4,5,default=2,a = ‘aaaa‘,b = ‘bbbb‘,)
動態參數的另一種傳參方式
 1 def func(*args):#站在形參的角度上,給變數加上*,就是組合所有傳來的值。 2     print(args) 3  4 func(1,2,3,4,5) 5 l = [1,2,3,4,5] 6 func(*l)  #站在實參的角度上,給一個序列加上*,就是將這個序列按照順序打散 7  8 def func(**kwargs): 9     print(kwargs)10 11 func(a=1,b=2)12 d = {‘a‘:1,‘b‘:2} #定義一個字典d13 func(**d)
函數的注釋
1 def func():2     ‘‘‘3     這個函數實現了什麼功能4     參數1:5     參數2:6     :return: 是字串或者列表的長度7     ‘‘‘8     pass

 

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.