• <option id="eu4su"><li id="eu4su"></li></option>
  • 更多課程 選擇中心

    Python培訓
    達內IT學院

    400-111-8989

    Python入門基礎 函數詳解

    • 發布:Cooldog
    • 來源:面包板社區
    • 時間:2017-12-26 15:33

    函數是可重復使用的,用來實現單一或者相關功能的代碼段。Python中的函數,無論是命名函數,還是匿名函數,都是語句和表達式的集合。Python函數的使用方式就像Python中其他值一樣,例如字符串和數字等。Python函數擁有一些屬性,通過使用Python內置函數dir就能查看這些屬性,例如:

    dir(max)

    函數定義

    關鍵字def用于創建用戶自定義函數,函數定義就是一些可執行的語句。

    #后面是打印結果

    def add(a,b):

    return a+b

    函數定義的簡單規則:

    任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用于定義參數

    函數代碼塊以 def 關鍵詞開頭,后接函數標識符名稱和圓括號()。

    函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。

    函數內容以冒號起始,并且縮進。

    return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。

    函數調用

    函數定義完后,就可以通過另一個函數,或者是命令行調用這個函數,我們來調用上面定義好的add函數:

    #后面是打印結果

    print 'a+b=',add(1,1) #a+b = 2

    函數形參

    函數取得的參數是你提供給函數的值,這樣函數就可以利用這些值 做 一些事情。這些參數就像變量一樣,只不過它們的值是在我們調用函數的時候定義的,而非在函數本身內賦值。

    參數在函數定義的圓括號對內指定,用逗號分割。當我們調用函數的時候,我們以同樣的方式提供值。注意我們使用過的術語——函數中的參數名稱為 形參 而你提供給函數調用的值稱為實參 。其實,上面的例子,我們已經做了演示,把1,1傳遞給了add函數。當然,形參也是沒有類型的,我們舉例說明一下:

    #后面是打印結果

    def MyPrint(a):

    print (a)

    MyPrint('Hello world') #Hello worldMy

    Print(1) #1

    MyPrint([1,2,3,4]) #[1, 2, 3, 4]

    局部變量

    當你在函數定義內聲明變量的時候,它們與函數外具有相同名稱的其他變量沒有任何關系,即變量名稱對于函數來說是 局部 的。這稱為變量的 作用域 。所有變量的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。

    def func(x):

    print 'x is',x

    x=8

    print 'change local x to',x

    x=80

    func(x)

    print 'x is still',x

    #最后輸出結果,大家自己試下哦!!

    x is 80

    change local x to 8

    x is still 80

    global關鍵字:如果你想要為一個定義在函數外的變量賦值,那么你就得告訴Python這個變量名不是局部的,而是全局 的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函數外的變量賦值的。可以使用定義在函數外的變量的值(假設在函數內沒有同名的量)。然而,我并不鼓勵你這樣做,并且你應該盡量避免這樣做,因為這使得程序的讀者會不清楚這個變量是在哪里定義的。使用global語句可以清楚地表明變量是在外面的塊定義的。

    def func():

    global x

    print 'x is',x

    x=8

    print 'change local x to',x

    x = 80

    func()

    print 'value of x is',x

    #最后輸出結果

    x is 80

    change local x to 8

    value of x is 8

    默認參數值

    對于一些函數,你可能希望它的一些參數是 可選 的,如果用戶不想要為這些參數提供值的話,這些參數就使用默認值。這個功能借助于默認參數值完成。你可以在函數定義的形參名后加上賦值運算符(=)和默認值,從而給形參指定默認參數值。

    def speak(message, times = 1):

    print message * times

    speak('Hello')

    speak('World', 5)

    #最后輸出結果

    Hello

    WorldWorldWorldWorldWorld

    關鍵參數

    如果你的某個函數有許多參數,而你只想指定其中的一部分,那么你可以通過命名來為這些參數賦值——這被稱作 關鍵參數 ——我們使用名字(關鍵字)而不是位置(我們前面所一直使用的方法)來給函數指定實參。

    這樣做有兩個優勢

    一,由于我們不必擔心參數的順序,使用函數變得更加簡單了。

    二、假設其他參數都有默認值,我們可以只給我們想要的那些參數賦值。

    def func(a, b=5, c=10):

    print 'a is', a

    print 'b is', b

    print 'c is', c

    print '***********'

    func(6, 8)

    func(30, c=31)

    func(c=50, a=100)

    #最后輸出結果,可以自己做做實驗。

    a is 6

    b is 8

    c is 10

    ***********

    a is 30

    b is 5

    c is 31

    ***********

    a is 100

    b is 5

    c is 50

    ***********

    return語句

    return語句用來從一個函數 返回 即跳出函數。我們也可選從函數 返回一個值 。

    注意,沒有返回值的return語句等價于return None。None是Python中表示沒有任何東西的特殊類型。例如,如果一個變量的值為None,可以表示它沒有值。

    這里就不舉例子了,第一個add函數就帶了return了。

    DocStrings

    Python有一個很奇妙的特性,稱為 文檔字符串 ,它通常被簡稱為 docstrings 。DocStrings是一個重要的工具,由于它幫助你的程序文檔更加簡單易懂,你應該盡量使用它。你甚至可以在程序運行的時候,從函數恢復文檔字符串!簡單的來說就是給你的函數加個功能說明,嘿嘿。舉例說明:

    def add(a,b):

    '''return the value a + b

    '''

    return a+b

    #按F5運行程序后,我們在命令行輸入

    >>>help(add)

    #輸出結果

    add(a, b)

    return the value a + b

    實際效果就是等同于你help(print),窗口打印出來那么多信息,就是在print函數里面也加了DocString,才有了這些幫助信息,我們自己寫函數的時候也可以加上,這方方便調用者,來了解你的函數。

    來源:面包板社區

    原帖地址:https://forum.mianbaoban.cn/t/python-cool-python/57556

    本文內容轉載自網絡,來源/作者信息已在文章頂部表明,版權歸原作者所有,如有侵權請聯系我們進行刪除!

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:Python語言的2017年終總結
    下一篇:Python入門基礎 控制流

    Python 中常見的配置文件寫法

    Python爬蟲可以做什么

    “高效實用” 的Python工具庫

    Python培訓之Python庫大整理

    • 關注微信公眾號

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2018 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    亚洲Av -宅男色影视,首长不要好深h,gogo人体高清大胆专,久章草在线影院免费视频,亚洲一区二区三区不卡国产,日本高清一二三不卡区