<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python 函數(shù)詳解

      轉(zhuǎn)載請(qǐng)注明 來(lái)源:http://www.eword.name/
      Author:eword
      Email:eword@eword.name

      python專(zhuān)題目錄

      Python 函數(shù)詳解

      一、認(rèn)識(shí)Python函數(shù):

      • 函數(shù)的本質(zhì)就是功能的封裝。使用函數(shù)可以大大提高編程效率與程序的可讀性。
      • 函數(shù)是能夠?qū)崿F(xiàn)特定功能的計(jì)算機(jī)代碼而已,他是一種特定的代碼組結(jié)構(gòu)。
      • 函數(shù)的作用
        • 1.提升代碼的重復(fù)利用率,避免重復(fù)開(kāi)發(fā)相同代碼
        • 2.提高程序開(kāi)發(fā)效率
        • 3.便于程序維護(hù)

      定義一個(gè)函數(shù):

      • 你可以定義一個(gè)由自己想要功能的函數(shù),以下是簡(jiǎn)單的規(guī)則:
        • 函數(shù)代碼塊以 def 關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱(chēng)和圓括號(hào) ()。
        • 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間,圓括號(hào)之間可以用于定義參數(shù)。
        • 函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。
        • 函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。
        • return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

      二、函數(shù)的定義格式:

      • 基本函數(shù)格式

      • 帶有參數(shù)的函數(shù)格式

      • 帶有默認(rèn)值的參數(shù)

      • 關(guān)鍵字參數(shù)

      • 收集參數(shù)(帶*)

      • 多種參數(shù)混合

      (一)基本函數(shù)格式:

      # 源碼
      
      # 基本函數(shù)定義格式
      
      """
      def  函數(shù)名():
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      
      調(diào)用函數(shù): 函數(shù)名()
      """
      
      # 定義函數(shù)
      def show_name():
          # 函數(shù)內(nèi)功能代碼
          print("My name is Eword!")
      
      
      # 調(diào)用函數(shù)
      show_name()
      
      # 結(jié)果
      
      My name is Eword!
      
      • 特征:函數(shù)定義之后不會(huì)自動(dòng)執(zhí)行,必須在調(diào)用函數(shù)后函數(shù)才會(huì)執(zhí)行.
      • 函數(shù)名的命名規(guī)則:和變量基本一樣
        • 1.推薦使用英文或者拼音,禁止使用中文
        • 2.可以使用數(shù)字,但是不能用數(shù)字開(kāi)頭
        • 3.不可以使用特殊字符,除了_
        • 4.函數(shù)名嚴(yán)格區(qū)分大小寫(xiě)
        • 5.函數(shù)名必須要有意義。
        • 6.不能和系統(tǒng)已經(jīng)存在的保留關(guān)鍵字沖突!
        • 7.禁止使用和系統(tǒng)提供函數(shù)相同的函數(shù)名

      (二) 帶有參數(shù)的函數(shù)格式

      • **形參:**形式上的參數(shù),聲明函數(shù)時(shí)()中的參數(shù)是形參
      • **實(shí)參:**實(shí)際上的參數(shù),調(diào)用函數(shù)時(shí)()中的參數(shù)是實(shí)參

      實(shí)參將值傳遞給形參的過(guò)程本質(zhì)上和變量賦值相同

      # 源碼 
      
      # 定義帶參數(shù)的函數(shù)
      
      """
      def 函數(shù)名(參數(shù),參數(shù)...):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      
      調(diào)用函數(shù):函數(shù)名(參數(shù),參數(shù)...)
      """
      
      
      
      
      
      # 計(jì)算面積函數(shù)
      def area(width, height):
          return width * height
      
      
      # 顯示姓名
      def show_name(name):
          # 函數(shù)內(nèi)功能代碼
          print("My name is ", name, " !")
      
      
      # 調(diào)用函數(shù)
      # 參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。
      # 例如:調(diào)用show_name()函數(shù),你必須傳入一個(gè)參數(shù),不然會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。
      w = 4
      h = 5
      print("寬 =", w, " 高 =", h, " 面積 =", area(w, h))
      show_name("Eword")
      
      # 結(jié)果
      
      寬 = 4  高 = 5  面積 = 20
      My name is  Eword  !
      

      (三) 關(guān)鍵字參數(shù):

      • 關(guān)鍵字參數(shù)就是調(diào)用函數(shù)時(shí),在實(shí)參前面指定形參的做法,為了防止參數(shù)按照位置傳遞出現(xiàn)的錯(cuò)誤
      • 關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來(lái)確定傳入的參數(shù)值。
      • 使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,因?yàn)?Python 解釋器能夠用參數(shù)名匹配參數(shù)值。
      # 源碼
      
      # 定義函數(shù)
      """
      def 函數(shù)名(形參=默認(rèn)值,形參=默認(rèn)值...):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      調(diào)用函數(shù):函數(shù)名(形參=實(shí)參,形參=實(shí)參...)
      """
      
      
      # 顯示人員信息
      def person_info(name, sex, age):
          # 函數(shù)內(nèi)功能代碼
          print("我的姓名叫{0},性別{1},年齡{2} !".format(name, sex, age))
      
      
      # 調(diào)用函數(shù)
      person_info("呂嬤嬤", "女", "30")
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info(sex="男", name="黃大大", age="20") # 函數(shù)參數(shù)的使用不需要使用指定順序:
      
      # 結(jié)果
      
      我的姓名叫呂嬤嬤,性別女,年齡30 !
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫黃大大,性別男,年齡20 !
      

      (四) 函數(shù)參數(shù)帶有默認(rèn)值

      • 調(diào)用函數(shù)時(shí),如果沒(méi)有傳遞參數(shù),則會(huì)使用默認(rèn)參數(shù)。以下實(shí)例中如果沒(méi)有傳入 age 參數(shù),則使用默認(rèn)值。
      • 調(diào)用函數(shù)時(shí),如果有傳遞參數(shù),使用實(shí)參值覆蓋原有形參的默認(rèn)值,本質(zhì)上就是變量的重新賦值操作。
      # 源碼
      
      # 定義參數(shù)帶有默認(rèn)值的函數(shù)
      
      """
      def 函數(shù)名(形參=默認(rèn)值,形參=默認(rèn)值...):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      調(diào)用函數(shù):
          函數(shù)名()  調(diào)用函數(shù)時(shí)所有形參采用默認(rèn)值操作
          函數(shù)名(實(shí)參,實(shí)參...) 調(diào)用時(shí)形參使用實(shí)參的值而拋棄默認(rèn)值
      """
      
      
      # 顯示人員信息
      def person_info(name="Eword", sex="男", age="18"):
          # 函數(shù)內(nèi)功能代碼
          print("我的姓名叫{0},性別{1},年齡{2} !".format(name, sex, age))
      
      
      # 調(diào)用函數(shù)
      person_info();
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info(name="呂嬤嬤", sex="女", age="30")
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info(name="黃大大", age="20")
      
      # 結(jié)果
      
      我的姓名叫Eword,性別男,年齡18 !
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫呂嬤嬤,性別女,年齡30 !
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫黃大大,性別男,年齡20 !
      

      (五)收集參數(shù):

      • 1.非關(guān)鍵字收集參數(shù)
        • 特征:
          • 1.非關(guān)鍵字收集參數(shù),在形參前添加一個(gè)*即可
          • 2.非關(guān)鍵字收集參數(shù)收集實(shí)參組成一個(gè)元組
          • 3.非關(guān)鍵字收集參數(shù),僅收集沒(méi)有任何形參接受的非關(guān)鍵字實(shí)參
          • 4.非關(guān)鍵字收集參數(shù)和普通的形參可以共存
      # 源碼
      
      # 非關(guān)鍵字收集參數(shù)
      # 定義函數(shù)
      """
      def 函數(shù)名(*參數(shù)名):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      調(diào)用函數(shù):函數(shù)名(實(shí)參,實(shí)參...)   沒(méi)有數(shù)量限制
      """
      
      
      # 顯示人員信息
      def person_info(name, sex, age, *args):
          # 函數(shù)內(nèi)功能代碼
          # 拼接 args 傳入的任何參數(shù)
          if args.__len__() > 0:
              _str = ", 其他信息:"
              for i in args:
                  _str += ", " + i
          else:
              _str = ""
      
          print("我的姓名叫{0},性別{1},年齡{2}{3}!".format(name, sex, age, _str))
      
      
      # 調(diào)用函數(shù)
      person_info("呂嬤嬤", "女", "30")
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info("呂嬤嬤", "女", "30", "國(guó)籍:中國(guó)", "籍貫:福建泉州", "婚姻狀況:已婚")
      
      # 結(jié)果
      
      我的姓名叫呂嬤嬤,性別女,年齡30!
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫呂嬤嬤,性別女,年齡30, 其他信息:, 國(guó)籍:中國(guó), 籍貫:福建泉州, 婚姻狀況:已婚!
      
      • 2.關(guān)鍵字收集參數(shù)
        • 特征:
          • 1.關(guān)鍵字收集參數(shù),在形參前添加兩個(gè)**即可
          • 2.關(guān)鍵字收集參數(shù),收集的結(jié)果組成一個(gè)字典,關(guān)鍵字成為字典的鍵,實(shí)參成為值
          • 3.關(guān)鍵字收集參數(shù),僅收集沒(méi)有任何形參接受的關(guān)鍵字參數(shù)
          • 4.關(guān)鍵字參數(shù)可以和普通的形參共存
      # 源碼
      
      # 關(guān)鍵字收集參數(shù)
      # 定義函數(shù)
      """
      def 函數(shù)名(**參數(shù)名):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
      調(diào)用函數(shù): 函數(shù)名(形參=實(shí)參,形參=實(shí)參...) 沒(méi)有數(shù)量限制
      """
      
      
      # 顯示人員信息
      def person_info(name, sex, age, **args):
          # 函數(shù)內(nèi)功能代碼
          # 拼接 args 傳入的任何參數(shù)
          if args.__len__() > 0:
              _str = ", 其他信息:"
              _str += "國(guó)籍:" + args["country"]
              _str += ", 籍貫:" + args["province"]
          else:
              _str = ""
      
          print("我的姓名叫{0},性別{1},年齡{2}{3}!".format(name, sex, age, _str))
      
      
      # 調(diào)用函數(shù)
      person_info(name="黃大大", sex="男", age="20")
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info(name="黃大大", sex="男", age="20", country="中國(guó)", province="福建泉州")
      print("========我是驕傲又可愛(ài)的分割線===========")
      person_info("黃小小", "女", "30", country="中國(guó)", province="福建廈門(mén)")
      
      # 結(jié)果
      
      我的姓名叫黃大大,性別男,年齡20!
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫黃大大,性別男,年齡20, 其他信息:國(guó)籍:中國(guó), 籍貫:福建泉州!
      ========我是驕傲又可愛(ài)的分割線===========
      我的姓名叫黃小小,性別女,年齡30, 其他信息:國(guó)籍:中國(guó), 籍貫:福建廈門(mén)!
      

      (六)多種參數(shù)混合

      • 定義函數(shù)時(shí)盡量避免多種參數(shù)格式混合(普通參數(shù)/非關(guān)鍵字參數(shù),關(guān)鍵字參數(shù),非關(guān)鍵字收集參數(shù),關(guān)鍵字收集參數(shù))
        • 1.普通參數(shù)(非關(guān)鍵字參數(shù))和關(guān)鍵字參數(shù)必須在兩種收集參數(shù)之前
        • 2.非關(guān)鍵字收集參數(shù),必須在關(guān)鍵字收集參數(shù)之前
        • 3.如果多種參數(shù)在一起,必須注意進(jìn)制參數(shù)多次賦值操作(相同賦值賦值之后,關(guān)鍵字參數(shù)在此賦值!)

      (七)函數(shù)返回值

      • 函數(shù)根據(jù)執(zhí)行完畢是否可以得到一個(gè)結(jié)果,將函數(shù)分為2個(gè)類(lèi)型:
        • 執(zhí)行過(guò)程函數(shù),例如:print()
          • 函數(shù)執(zhí)行完畢之后,不會(huì)有任何結(jié)果可以被接受的函數(shù)。
        • 具有返回值的函數(shù),例如:id(),type()
          • 函數(shù)執(zhí)行完畢之后,會(huì)產(chǎn)生一個(gè)結(jié)果,可以被變量接受或者使用的函數(shù)
      # 源碼
      
      # 定義函數(shù)
      """
      def 函數(shù)名(參數(shù)....):
          函數(shù)功能代碼...
          函數(shù)功能代碼...
          ...
      
          [return 語(yǔ)句]
      """
      
      
      # 顯示姓名
      def show_name(name):
          # 函數(shù)內(nèi)功能代碼
          _str = "我的名字是:{}!".format(name)
          print("內(nèi)部打印:{}".format(_str))
          return _str
      
      
      # 調(diào)用函數(shù)并賦值
      my_name = show_name("Eword")
      print("外部打印:{}".format(my_name))
      
      # 結(jié)果
      
      內(nèi)部打印:我的名字是:Eword!
      外部打印:我的名字是:Eword!
      
      • return的特征:
        • 1.具有return語(yǔ)句的函數(shù)稱(chēng)為具有返回值的函數(shù)
        • 2.return可以為當(dāng)前函數(shù)執(zhí)行完畢返回一個(gè)結(jié)果,這樣的函數(shù)調(diào)用可以被接受
        • 3.return執(zhí)行之后,函數(shù)則會(huì)終止,所有return之后的語(yǔ)句不會(huì)被執(zhí)行
        • 4.一個(gè)函數(shù)可以書(shū)寫(xiě)多個(gè)return語(yǔ)句,但是一般會(huì)放入分支結(jié)構(gòu)當(dāng)中。
        • 5.一個(gè)函數(shù)如果需要返回多個(gè)數(shù)據(jù),需要借助復(fù)合數(shù)據(jù)類(lèi)型(list,tuple,set,dict)來(lái)操作即可!
        • 6.不帶參數(shù)值的return語(yǔ)句返回None。

      三、函數(shù)文檔

      • 函數(shù)文檔就是用來(lái)查看當(dāng)前函數(shù)相關(guān)信息介紹的一個(gè)特定格式而已。
      • 查看函數(shù)文檔的方法:
      # 源碼
      
      # 定位函數(shù),并定義函數(shù)的文檔
      """
          def 函數(shù)名(參數(shù)...):
              '''
                  在此處聲明函數(shù)文檔
      
              '''
      
              函數(shù)功能代碼...
              函數(shù)功能代碼...
              。。。
      """
      
      
      # 顯示姓名
      def show_name(name):
          """
          函數(shù) show_name 是用來(lái)顯示傳入的姓名,顯示格式如下:
          我的名字是:{name}!
          :param name:姓名
          :return:姓名
          """
          # 函數(shù)內(nèi)功能代碼
          _str = "我的名字是:{}!".format(name)
          print(_str)
          return _str
      
      
      # 顯示函數(shù)文檔
      help(show_name)
      
      # 結(jié)果
      
      Help on function show_name in module __main__:
      show_name(name)
          函數(shù) show_name 是用來(lái)顯示傳入的姓名,顯示格式如下:
          我的名字是:{name}!
          :param name:姓名
          :return:姓名
      
      • 注意:函數(shù)文檔的作用是對(duì)函數(shù)進(jìn)行說(shuō)明,便于閱讀和快速掌握函數(shù)的使用,通常函數(shù)文檔需要具有以下信息:
        • 函數(shù)的作用
        • 函數(shù)的參數(shù)介紹(個(gè)數(shù),數(shù)據(jù)類(lèi)型)
        • 函數(shù)的返回值(數(shù)據(jù)和類(lèi)型)

      四、局部變量與全局變量

      • 定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域,定義在函數(shù)外的擁有全局作用域。
      • 局部變量只能在其被聲明的函數(shù)內(nèi)部訪問(wèn),而全局變量可以在整個(gè)程序范圍內(nèi)訪問(wèn)。調(diào)用函數(shù)時(shí),所有在函數(shù)內(nèi)聲明的變量名稱(chēng)都將被加入到作用域中。
      • 在局部?jī)?nèi)同名的全局變量和局部變量,一般情況下局部變量會(huì)優(yōu)先與全局變量。
      # 源碼
      
      # 定義全局變量
      name = "我是全局的黃大大"
      
      
      # 定義函數(shù)
      # 顯示姓名
      def show_name():
          # 函數(shù)內(nèi)功能代碼
          name = "我是局部的呂嬤嬤"
          print("內(nèi)部打印的是局部變量:{}".format(name))
          return name
      
      
      # 調(diào)用函數(shù)
      show_name()
      print("外部打印的是全局變量:{}".format(name))
      
      # 結(jié)果
      
      內(nèi)部打印的是局部變量:我是局部的呂嬤嬤
      外部打印的是全局變量:我是全局的黃大大
      

      五、匿名函數(shù)

      • python 使用 lambda 來(lái)創(chuàng)建匿名函數(shù)。
      • 所謂匿名,意即不再使用 def 語(yǔ)句這樣標(biāo)準(zhǔn)的形式定義一個(gè)函數(shù)。
      • lambda 只是一個(gè)表達(dá)式,函數(shù)體比 def 簡(jiǎn)單很多。
      • lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
      • lambda 函數(shù)擁有自己的命名空間,且不能訪問(wèn)自己參數(shù)列表之外或全局命名空間里的參數(shù)。
      • 雖然lambda函數(shù)看起來(lái)只能寫(xiě)一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。

      lambda 函數(shù)的語(yǔ)法:

      lambda [arg1 [,arg2,.....argn]]:expression
      

      示例:

      # 源碼
      
      # 定義匿名函數(shù)
      ares = lambda width, height: width * height
      
      # 調(diào)用函數(shù)
      print("面積:{}".format(ares(3, 4)))
      
      # 結(jié)果
      
      面積:12
      
      posted @ 2023-06-22 18:40  影烏  閱讀(143)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 在线a亚洲老鸭窝天堂| 亚洲中文字幕一区二区| 日韩av裸体在线播放| 久久亚洲中文字幕伊人久久大| 免费国产精品黄色一区二区| 无码一区二区三区久久精品| 亚洲色欲在线播放一区二区三区| 久久香蕉国产亚洲av麻豆| 杂多县| 国产精品一码二码三码| 国产蜜臀一区二区在线播放| 色成人亚洲| 天天摸夜夜摸夜夜狠狠添| 乱熟女高潮一区二区在线| 亚洲熟伦熟女新五十熟妇| 中文字幕日本一区二区在线观看| 国产JJIZZ女人多水喷水| 蜜臀精品视频一区二区三区| 国色天香中文字幕在线视频| 亚洲国产精品美日韩久久| 中文字幕亚洲人妻一区| 无码人妻丝袜在线视频| 伊人精品成人久久综合97| 伊人久久精品无码麻豆一区| 亚洲va中文字幕无码久久不卡| 九九久久自然熟的香蕉图片| 亚洲无人区码一二三区别| 亚洲综合一区国产精品| 美女无遮挡免费视频网站| 色欲av久久一区二区三区久| 欧美 日韩 国产 成人 在线观看| 久久国产免费直播| 无码人妻精品一区二区三区东京热 | 久久精品中文字幕少妇| 国产成人无码网站| 涩涩爱狼人亚洲一区在线| 免费拍拍拍网站| 河北真实伦对白精彩脏话| 超碰人人超碰人人| 亚洲国产精品日韩在线 | 国产超高清麻豆精品传媒麻豆精品|