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

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

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

      Python 函數詳解

      轉載請注明 來源:http://www.eword.name/
      Author:eword
      Email:eword@eword.name

      python專題目錄

      Python 函數詳解

      一、認識Python函數:

      • 函數的本質就是功能的封裝。使用函數可以大大提高編程效率與程序的可讀性。
      • 函數是能夠實現特定功能的計算機代碼而已,他是一種特定的代碼組結構。
      • 函數的作用
        • 1.提升代碼的重復利用率,避免重復開發相同代碼
        • 2.提高程序開發效率
        • 3.便于程序維護

      定義一個函數:

      • 你可以定義一個由自己想要功能的函數,以下是簡單的規則:
        • 函數代碼塊以 def 關鍵詞開頭,后接函數標識符名稱和圓括號 ()。
        • 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。
        • 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
        • 函數內容以冒號起始,并且縮進。
        • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。

      二、函數的定義格式:

      • 基本函數格式

      • 帶有參數的函數格式

      • 帶有默認值的參數

      • 關鍵字參數

      • 收集參數(帶*)

      • 多種參數混合

      (一)基本函數格式:

      # 源碼
      
      # 基本函數定義格式
      
      """
      def  函數名():
          函數功能代碼...
          函數功能代碼...
          ...
      
      
      調用函數: 函數名()
      """
      
      # 定義函數
      def show_name():
          # 函數內功能代碼
          print("My name is Eword!")
      
      
      # 調用函數
      show_name()
      
      # 結果
      
      My name is Eword!
      
      • 特征:函數定義之后不會自動執行,必須在調用函數后函數才會執行.
      • 函數名的命名規則:和變量基本一樣
        • 1.推薦使用英文或者拼音,禁止使用中文
        • 2.可以使用數字,但是不能用數字開頭
        • 3.不可以使用特殊字符,除了_
        • 4.函數名嚴格區分大小寫
        • 5.函數名必須要有意義。
        • 6.不能和系統已經存在的保留關鍵字沖突!
        • 7.禁止使用和系統提供函數相同的函數名

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

      • **形參:**形式上的參數,聲明函數時()中的參數是形參
      • **實參:**實際上的參數,調用函數時()中的參數是實參

      實參將值傳遞給形參的過程本質上和變量賦值相同

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

      (三) 關鍵字參數:

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

      (四) 函數參數帶有默認值

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

      (五)收集參數:

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

      (六)多種參數混合

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

      (七)函數返回值

      • 函數根據執行完畢是否可以得到一個結果,將函數分為2個類型:
        • 執行過程函數,例如:print()
          • 函數執行完畢之后,不會有任何結果可以被接受的函數。
        • 具有返回值的函數,例如:id(),type()
          • 函數執行完畢之后,會產生一個結果,可以被變量接受或者使用的函數
      # 源碼
      
      # 定義函數
      """
      def 函數名(參數....):
          函數功能代碼...
          函數功能代碼...
          ...
      
          [return 語句]
      """
      
      
      # 顯示姓名
      def show_name(name):
          # 函數內功能代碼
          _str = "我的名字是:{}!".format(name)
          print("內部打?。簕}".format(_str))
          return _str
      
      
      # 調用函數并賦值
      my_name = show_name("Eword")
      print("外部打印:{}".format(my_name))
      
      # 結果
      
      內部打印:我的名字是:Eword!
      外部打?。何业拿质牵篍word!
      
      • return的特征:
        • 1.具有return語句的函數稱為具有返回值的函數
        • 2.return可以為當前函數執行完畢返回一個結果,這樣的函數調用可以被接受
        • 3.return執行之后,函數則會終止,所有return之后的語句不會被執行
        • 4.一個函數可以書寫多個return語句,但是一般會放入分支結構當中。
        • 5.一個函數如果需要返回多個數據,需要借助復合數據類型(list,tuple,set,dict)來操作即可!
        • 6.不帶參數值的return語句返回None。

      三、函數文檔

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

      四、局部變量與全局變量

      • 定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
      • 局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。
      • 在局部內同名的全局變量和局部變量,一般情況下局部變量會優先與全局變量。
      # 源碼
      
      # 定義全局變量
      name = "我是全局的黃大大"
      
      
      # 定義函數
      # 顯示姓名
      def show_name():
          # 函數內功能代碼
          name = "我是局部的呂嬤嬤"
          print("內部打印的是局部變量:{}".format(name))
          return name
      
      
      # 調用函數
      show_name()
      print("外部打印的是全局變量:{}".format(name))
      
      # 結果
      
      內部打印的是局部變量:我是局部的呂嬤嬤
      外部打印的是全局變量:我是全局的黃大大
      

      五、匿名函數

      • python 使用 lambda 來創建匿名函數。
      • 所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。
      • lambda 只是一個表達式,函數體比 def 簡單很多。
      • lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
      • lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間里的參數。
      • 雖然lambda函數看起來只能寫一行,卻不等同于C或C++的內聯函數,后者的目的是調用小函數時不占用棧內存從而增加運行效率。

      lambda 函數的語法:

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

      示例:

      # 源碼
      
      # 定義匿名函數
      ares = lambda width, height: width * height
      
      # 調用函數
      print("面積:{}".format(ares(3, 4)))
      
      # 結果
      
      面積:12
      
      posted @ 2023-06-22 18:40  Eword  閱讀(257)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成熟女人性满足视频| 怡红院一区二区三区在线| 国产亚洲制服免视频| 国产成人欧美一区二区三区在线| 蜜臀av黑人亚洲精品| 国产成人欧美日韩在线电影| 阿克| 成人影片一区免费观看| 日韩av熟女人妻一区二| 亚洲国产精品第一区二区| 国产a网站| 亚洲Av综合日韩精品久久久| 老熟妇仑乱换频一区二区| 黑人欧美一级在线视频| 国产精品中文字幕二区| 免费无码一区无码东京热| 九九热免费在线视频观看| 欧美亚洲另类自拍偷在线拍| 国产99在线 | 欧美| 国产精品十八禁一区二区| 中文字幕人妻无码一区二区三区| 亚洲欧美在线观看品| 亚洲国产精品一区二区久| 日本强好片久久久久久aaa| 91一区二区三区蜜桃臀| 亚洲成人动漫av在线| 熟女丝袜潮喷内裤视频网站| 国产精品一区二区国产馆| 动漫AV纯肉无码AV电影网| 国产av剧情md精品麻豆| 人妻加勒比系列无码专区| 老司机午夜精品视频资源| 日本无遮挡吸乳呻吟视频| 国产乱老熟女乱老熟女视频| 国产午夜影视大全免费观看| 国产成人免费| 国产成人一区二区三区免费| 四虎女优在线视频免费看| 岛国大片在线免费播放| 99精品热在线在线观看视| 国产一国产看免费高清片|