python基礎-函數(一)--python3

來源:互聯網
上載者:User

標籤:python3   函數基礎   

python基礎---函數(一)

目錄 python基礎---函數(一)1.函數的定義2.函數 的參數詳解3.return4.lambda匿名函數

1.函數的定義

function  功能,函數    函數就是對代碼進行一個封裝,把實現某一功能的相同代碼,進行封裝到一起。下次需要使用時,就不需要進行代碼編寫,直接調用即可。好處:    增加代碼的複用性,增加代碼的可讀性減少代碼的編寫量,降低維護成本。    函數可以看成,解決某類問題的‘工具’定義方法:‘‘‘def function_name(params):    block    return expression(運算式)/value‘‘‘def 關鍵字表示定義一個函數function_name 函數名,和變數的命名規則相同,以字母和_開頭,可以包含字母,數字和_params 表示參數,可以是零個,一個或者多個參數,函數參數不用指定參數類型#examples    def dieDai(iter):        for i in iter:            print(i)    >>> li=(1,2,3,4)    >>> dieDai(li)    1    2    3    4

2.函數 的參數詳解

1.必備參數:參數沒有預設值2.預設參數:參數是有預設值,調用函數是可以傳參也可以不傳參,不傳時,參數是預設值3.不定長參數:可在定義是定義,也可在傳入時定義傳入    定義方法:def function_name(*args,**kwargs)    *args 將傳入參數封裝成元祖    **kwargs  將傳入參數封裝成字典
  • [ ] #1.不傳參數
    def fun1():
    print(‘不能傳參數‘)

    >> fun1(‘q‘)
    Traceback (most recent call last):
    File "<pyshell#7>", line 1, in <module>
    fun1(‘q‘)
    TypeError: fun1() takes 0 positional arguments but 1 was given
    >> fun1()
    不能傳參數
    #2.必備參數
    def fun2(a):
    print(‘必須傳參數:‘,a)
    >> fun2(2)
    必須傳參數: 2
    #3.預設參數 參數可傳也可不傳
    def fun3(b=2):
    print(‘預設參數:‘,b)
    >> fun3()
    預設參數: 2
    >> fun3(4)
    預設參數: 4
    >> fun3(b=10)
    預設參數: 10
    ##4.選擇性參數 可傳0-多個,封裝成元祖
    def fun4(arg):
    print(‘可以穿0個到多個‘,arg)
    >> fun4() #返回一個空元祖
    可以穿0個到多個 ()
    >> fun4(1) #返回一個元祖
    可以穿0個到多個 (1,)
    >> fun4(2,3)
    可以穿0個到多個 (2, 3)
    >> fun4(4,5,6,7,8)
    可以穿0個到多個 (4, 5, 6, 7, 8)
    >> fun4([1,2])
    可以穿0個到多個 ([1, 2],)
    >> fun4(‘sdf‘)
    可以穿0個到多個 (‘sdf‘,)
    >> fun4({‘q‘:123})
    可以穿0個到多個 ({‘q‘: 123},)
    >> fun4((1,2))
    可以穿0個到多個 ((1, 2),)
    #選擇性參數,傳參時加
    號,就把裡面的殼去掉(解包)
    >> fun4((1,2))
    可以穿0個到多個 (1, 2)
    >> fun4(
    {‘q‘:123})
    可以穿0個到多個 (‘q‘,)
    >> fun4([1,2])
    可以穿0個到多個 (1, 2)
    >> fun4(
    ‘sdf‘)
    可以穿0個到多個 (‘s‘, ‘d‘, ‘f‘)
    ##5.關鍵字參數
    def fun5(a,b): #定義的時候跟必備參數一樣
    print(a,b) #必須放到最後
    >> fun5(a=1,b=2)
    1 2

          def fun6(**kwarg):      print(‘關鍵字參數:‘,kwarg)     #封裝成字典(可傳0-多個)      >>> fun6()      關鍵字參數: {}      >>> fun6(a=1,b=2)     #遵循變數名規則      關鍵字參數: {‘a‘: 1, ‘b‘: 2}      >>> fun6(**{‘a‘:123,‘b‘:‘wer‘})      關鍵字參數: {‘a‘: 123, ‘b‘: ‘wer‘}      >>> fun6(**{1:123,2:‘wer‘})       #key必須是字串      Traceback (most recent call last):        File "<pyshell#48>", line 1, in <module>          fun6(**{1:123,2:‘wer‘})      TypeError: fun6() keywords must be strings  ##參數混合時 關鍵字參數必須在後面,根據定義的書序,確保必備參數能拿到值且只有一個  #1.必備參數+預設參數:預設參數必須在必備參數的後面      def fun7(b,a=1):          print(a,b)      >>> fun7(1,)      1 1       >>> fun7(‘q‘,a=‘we‘)      we q      >>> fun7(a=‘we‘,b=‘ert‘)      we ert      >>> fun7(‘q‘,‘w‘)      w q  #2      def fun8(b,m=1,*a):          print(b)          print(m)          print(a)       ==================      >>> fun8(1,2,3,4,5,6,7,8)      1      2      (3, 4, 5, 6, 7, 8)      >>>   #3      def fun9(*a,b,m): #b,m為關鍵自參數          print(a,b,m)          print(b)          print(m)      >>> fun9(1,2,3,4,5,b=‘q‘,m=‘w‘)      (1, 2, 3, 4, 5) q w      q      w

3.return

return 有兩個作用:    1.用來返回函數的運行結果,或者調用另外一個函數。比如max()函數    2.函數結束的標誌。主要運行了return,就強制結束了函數。return後面的程式都不會執行如果函數中沒有寫return,其實函數運行結束時,預設執行了 return Nonereturn 語句的位置是可選的,不是固定出現再函數的最後,可以自訂在函數的任何地方。#返回函數的運行結果    >>> def fun1(a,b):      #返回a=2        if a>b:            return a    >>> fun1(2,1)    2    >>> a=fun1(2,1)    >>> a    2    >>> def fun1(a,b):      #返回b=None        if a>b:            print(a)    >>> fun1(2,1)    2    >>> b=fun1(2,1)    2    >>> b#函數結束的標誌 可以放在任何地方    >>> def fun10(a,b):        if a>b:            print(a)    >>> fun10(2,1)    2    >>> def fun10(a,b):        return(‘我不下去了‘) #函數結束標誌        if a>b:            print(a)    >>> fun10(2,1)    ‘我不下去了‘

4.lambda匿名函數

沒有函數名的函數g = lamdba x:x+1lambda 簡化了函數定義的書寫形式。是代碼更為簡潔,但是使用函數的定義方式更為直觀,易理解lambda的應用情境:1.有些函數如果只是臨時一用,而且它的商務邏輯也很簡單時,就沒有必要用def來定義,這個時候就可以使用lambda。2.函數都支援函數作為參數。lambda函數就可以應用>>> fun10           #函數體<function fun10 at 0x0000000003429D08>>>> g=lambda x:x+1  #函數體>>> g<function <lambda> at 0x00000000034371E0>>>> g(1)2

python基礎-函數(一)--python3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.