<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python基礎(chǔ)第十二講:詳細(xì)說一下 什么是 Python 函數(shù)?

          共 4091字,需瀏覽 9分鐘

           ·

          2021-04-07 11:48



          本文內(nèi)容是介紹什么是函數(shù)?


          如何創(chuàng)建屬于自己的函數(shù),完成想要的功能。




          01

          什么是  函數(shù)?



          函數(shù)是一個獨立且封閉完成特定功能的代碼塊,可以在任何地方被調(diào)用。

          比如 print()函數(shù),無論你在程序中的任何地方調(diào)用,都是輸出()中的內(nèi)容。


          這種獨立的封閉代碼塊又稱為封裝


          也可以把函數(shù)理解為一個盒子。盒子里面的代碼就是封裝好的,完成特定的功能,外面的代碼不屬于函數(shù)。


          有了封裝以后,我們就可以把代碼塊用一個個函數(shù)表示,然后通過一個個的調(diào)用就可以把復(fù)雜的功能拆解,簡單化。


          這個過程就是面向過程的程序設(shè)計,與之對應(yīng)的是面向?qū)ο蟮某绦蛟O(shè)計在面向過程的程序設(shè)計里面,函數(shù)是基本單元。


          在Python中,函數(shù)分為內(nèi)建函數(shù)和用戶自定義函數(shù)。內(nèi)建函數(shù)是Python程序語言已經(jīng)給我們創(chuàng)建好了,直接可以使用。這一類的函數(shù)很多,我們不需要每一個都記住名字,常用的記住即可。


          官方文檔https://docs.python.org/3/library/functions.html給出了很多內(nèi)建函數(shù),如下表所示。


          表  Python內(nèi)建函數(shù)

          Built-in  Functions

          abs()

          delattr()

          hash()

          memoryview()

          set()

          all()

          dict()

          help()

          min()

          setattr()

          any()

          dir()

          hex()

          next()

          slice()

          ascii()

          divmod()

          id()

          object()

          sorted()

          bin()

          enumerate()

          input()

          oct()

          staticmethod()

          bool()

          eval()

          int()

          open()

          str()

          breakpoint()

          exec()

          isinstance()

          ord()

          sum()

          bytearray()

          filter()

          issubclass()

          pow()

          super()

          bytes()

          float()

          iter()

          print()

          tuple()

          callable()

          format()

          len()

          property()

          type()

          chr()

          frozenset()

          list()

          range()

          vars()

          classmethod()

          getattr()

          locals()

          repr()

          zip()

          compile()

          globals()

          map()

          reversed()

          __import__()

          complex()

          hasattr()

          max()

          round()



          用戶自定義函數(shù)就是自己根據(jù)需要實現(xiàn)的功能設(shè)計代碼塊。





          02

          為什么需要用函數(shù)?



          無論任何編程語言,函數(shù)的作用都是一樣的,概括起來主要有以下幾個作用:


          01:解決代碼重復(fù)問題


          在實際項目中,我們經(jīng)常會遇到代碼功能一樣,但是參數(shù)不同。也就是給定不同的參數(shù),得出不同的結(jié)果,


          比如print(‘你好’) 與print('吃飯了嗎?'),功能都是打印信息。我們不需要為“你好”,“吃飯了嗎”編寫同樣的打印功能代碼,也就是實現(xiàn)print函數(shù)。只需要用同一個函數(shù)(print)就可以完成同樣的任務(wù)。


          在代碼中多次執(zhí)行同一項任務(wù)時,無需反復(fù)編寫該任務(wù)的代碼,只需要調(diào)用該任務(wù)名稱的代碼塊,也就是函數(shù)即可完成任務(wù)。



          2:代碼結(jié)構(gòu)與思維結(jié)構(gòu)一致

          實際生活中,解決問題的方法一般是分步驟:


          比如考大學(xué),先從小學(xué)開始讀,然后初中、高中。但是每一個階段學(xué)的內(nèi)容不同。我們只需要把每一個階段編寫為一個函數(shù),然后按照我們思考的步驟組織在一起。有人認(rèn)為從高中開始,再到小學(xué);也有認(rèn)為從小學(xué)到高中,按照自然規(guī)律。


          這個就是思維方式的不同。在編程中,這些都是正確的,沒有對錯之分,能組合在一起完成功能即可。


          例子
          '''
          使用函數(shù)描述:考上大學(xué)之前,我們需要經(jīng)歷的階段有
          '''
          # 小學(xué)
          primary_school()
          # 初中
          junior_middle_school()
          # 高中
          senior_middle_school()


          3:利于分工合作


          在實際項目中,要實現(xiàn)的功能往往比較復(fù)雜。我們只需要按照功能拆解的方法思考問題。


          把一個大問題,拆解為幾個小問題,每一個小問題就是一個函數(shù)。然后再把所有函數(shù)按照思考的過程組織在一起即可。


          拆解問題的事情一般是公司架構(gòu)師做的事情,定義好每一個函數(shù)的功能以及函數(shù)的接口,然后分配給不同的程序員去完成。


          這個就是多人協(xié)作完成一個大的功能。


          4:代碼清晰、易讀、易修改


          代碼被函數(shù)組織起來以后,整個程序文件變得有調(diào)理、有章法


          我們只需要按照函數(shù)的結(jié)構(gòu)閱讀代碼即可,非常清晰明了。


          每一個函數(shù)完成特定的功能。如果某一個函數(shù)出錯了,我們只需要調(diào)整該函數(shù)即可,方便快捷。


          尤其是在代碼行數(shù)比較多的時候能快速定位到錯誤所在的位置。





          03

          如何定義函數(shù)?



          在Python語言中,函數(shù)的定義語法是:

           

          定義函數(shù)語法
          # 定義函數(shù)語法
          def funtion_name(parameter1, parameter2, xxxxx):
          語句1
          語句2
          returnxxxx



          def:為關(guān)鍵字,告訴python這是一個函數(shù)


          funtion_name:是函數(shù)名字。函數(shù)是完成特定功能的代碼塊,給這個代碼塊取一個名字就是函數(shù)名,通常用具有描述性的單詞表示,比如check_events(),檢查事件。函數(shù)名命名規(guī)則與變量的一樣。


          parameter1、paramter2 、xxxx:等是函數(shù)的參數(shù),也就是函數(shù)可以加工處理的數(shù)據(jù)。參數(shù)可以有0到多個,但是名字不能重名。所有的參數(shù)用括號括起來(),即使0個參數(shù)也需要。


          冒號(:):函數(shù)定義需要冒號結(jié)尾,此為python語法要求


          語句1、語句2、return:函數(shù)的代碼塊,說明函數(shù)具體需要做什么事情,也就是需要實現(xiàn)什么樣的功能。


          (1)函數(shù)代碼塊必須縮進(jìn),使用tab建即可,不是空格鍵。這是Python語法要求。具有同樣縮進(jìn)的代碼塊才是一個完整的代碼塊

          (2)例子:沒有合理縮進(jìn),引發(fā)的常見錯誤之一

           

          例子:沒有縮進(jìn)引起的錯誤
          # 定義函數(shù)語法def funtion_name(parameter1,parameter):
          語句1 語句2
          return xxxx


          File"/Users/yoni.ma/PycharmProjects/seven_days_python/Sixth_day/define_fun.py",line 18
          語句1
          ^
          IndentationError: expected an indented block


          (3)語句1、語句2為函數(shù)具體執(zhí)行內(nèi)容,可以有1到多個語句。但是不能沒有任何語句。否則代碼錯誤。


          (4)return:函數(shù)返回值,可有可無。根據(jù)自己設(shè)計的函數(shù)功能而決定。


          ①函數(shù)運(yùn)行完成以后,如果需要返回一個值給調(diào)用該函數(shù)的地方,則使用return。否則不需要。

          ②return還表示函數(shù)的結(jié)束。尤其當(dāng)代碼比較多,各種while、if、 for等都有的函數(shù)。





          04

          如何調(diào)用函數(shù)?



          調(diào)用函數(shù)就是讓Python執(zhí)行函數(shù)的代碼,也就是喊出函數(shù)的名字。


          只有當(dāng)函數(shù)被調(diào)用時,函數(shù)內(nèi)部的代碼段才會被執(zhí)行


          這點也是新手容易犯的錯誤之一:忘記調(diào)用函數(shù)就運(yùn)行程序而得不到結(jié)果,調(diào)試此類錯誤需要耐心。


          函數(shù)調(diào)用結(jié)束時,這個函數(shù)內(nèi)部生成的所有數(shù)據(jù)都會被銷毀。


          根據(jù)程序設(shè)計要求,同一個函數(shù)可以被調(diào)用多次或1次。調(diào)用函數(shù)也可以用來測試函數(shù)功能是否正確,比如每次寫完一個函數(shù)的功能,然后調(diào)用并運(yùn)行以查看是否出錯或期望的結(jié)果。


          如果錯誤,則調(diào)試代碼(查找哪里出錯);否則進(jìn)行下一個函數(shù)的編寫。運(yùn)用此方法雖然有一點繁瑣,但是可以大大縮減代碼調(diào)試,


          因為我們把錯誤提前解決了。


          調(diào)用函數(shù)語法為:
          funtion_name()

          注意:funtion_name()前面沒有縮進(jìn),否則不能正確調(diào)用函數(shù)。




          05

          函數(shù)用定義和調(diào)用的例子


          例子
          """

          函數(shù)的例子:
          知識點:
          1。定義函數(shù)
          2。函數(shù)調(diào)用

          """


          # 定義函數(shù)
          def welcome_python():
          print('歡迎加入Python實戰(zhàn)圈!')


          # 調(diào)用函數(shù)。為了方便閱讀代碼,與定義函數(shù)最好空兩行。
          welcome_python()
          welcome_python()

          歡迎加入Python實戰(zhàn)圈!
          歡迎加入Python實戰(zhàn)圈!

          無論是定義還是調(diào)用函數(shù),常見錯誤有以下幾個情況:
          1) 函數(shù)定義中缺少冒號或者是中文冒號
          2) 函數(shù)體沒有縮進(jìn)
          3) 調(diào)用函數(shù)的時候縮進(jìn)了,提示函數(shù)錯誤
          例子:如過welcome_python()縮進(jìn)了,運(yùn)行函數(shù)沒有錯誤,但是運(yùn)行結(jié)果是空。
          def welcome_python():
          print('歡迎加入Python實戰(zhàn)圈!')

             welcome_python()
          Process finished with exit code 0

           以上內(nèi)容摘自《零基礎(chǔ)輕松學(xué) Python》


          零基礎(chǔ)學(xué) Python,看下嘛
          送109元的零基礎(chǔ)視頻課

           只需7天時間,跨進(jìn)Python編程大門,已有3800+加入
          【基礎(chǔ)】0基礎(chǔ)入門python,24小時有人快速解答問題;
          【提高】40多個項目實戰(zhàn),老手可以從真實場景中學(xué)習(xí)python;
          【直播】不定期直播項目案例講解,手把手教你如何分析項目;
          【分享】優(yōu)質(zhì)python學(xué)習(xí)資料分享,讓你在最短時間獲得有價值的學(xué)習(xí)資源;圈友優(yōu)質(zhì)資料或?qū)W習(xí)分享,會不時給予贊賞支持,希望每個優(yōu)質(zhì)圈友既能賺回加入費用,也能快速成長,并享受分享與幫助他人的樂趣。
          【人脈】收獲一群志同道合的朋友,并且都是python從業(yè)者
          【價格】本著布道思想,只需 69元 加入一個能保證學(xué)習(xí)效果的良心圈子。
          【贈予】價值109元 0基礎(chǔ)入門在線課程,免費送給圈友們,供鞏固
          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费av网站 | 暧暖无码| 啪网站| 操日韩| 欧美日韩一二三 |