1. 程式人生 > >python:函式基礎、高階

python:函式基礎、高階

#函式

###目標:
* 能夠說出函式的作用
* 理解引數
* 作用域:全域性變數和區域性變數
* 理解return關鍵字
* 預設引數
* 關鍵字引數
* 可變引數
* 字典引數
* 匿名函式

####函式

  • 概念:將具有獨立功能的程式碼塊組織成為一個整體,使其具有特殊功能的程式碼集
  • 作用:加強程式碼的複用性,提高程式編寫的效率
  • 基本語法

    # 函式定義:形參
    def 函式名(引數):			 
    	函式體
    	return 結果	# 根據你的需求來決定是否return
    
    # 函式呼叫:實參
    變數名 = 函式名(引數)
    
    
  • 作用域

    • 區域性變數:函式內部定義的變數從函式定義位置開始到函式定義結束位置有效
    • 全域性變數:函式外部定義的變數,從變數定義位置開始,在整個檔案中有效。
      global 變數名
  • 預設引數

    # 預設引數的定義必須在位置引數的右側
    # 預設引數在呼叫傳值時,按照位置引數進行對待,從左至右依次賦值
    def test(a,b=2,c=3):
    	pass
    test(100,200,300) # a=100 b=200 c=300
    
  • 關鍵字引數

    # 關鍵字引數必須出現在位置引數的後面
    # 不允許使用關鍵字引數對同一個形參進行多次賦值
    # 關鍵字引數既可以為位置引數賦值,也可以為預設引數賦值
    # !!關鍵字引數只能出現在位置引數的後面,賦值時必須使用關鍵字引數傳值,
    def test(a=100,b=200):
    	pass
    test(b=1)
    
  • 可變引數

    # 可變引數在一個函式/方法定義中只能出現一個
    # 可變引數只能出現在位置引數的後面,位置引數在左側,可變引數在右側
    # !!先定義位置引數,再定義可變引數,最後定義預設引數
    def test(*args):
    	pass
    test(1,2,3,4,5)
    
  • 字典引數

    # 字典引數在一個函式/方法定義中只能出現一個
    # 先定義位置引數,再定義可變引數,然後定義預設引數,最後定義字典引數
    def test(**kwargs):
    	pass
    test(a=1,b=2)
    
  • 遞迴函式(瞭解)

    遞迴分為兩個重要的階段:遞推+回溯
    
  • 匿名函式:lambda

    # 格式一:
    # 定義:	函式名 = lambda 形參 : 返回值
    # 呼叫:	結果 = 函式名(實參)
    add = lambda a,b : a+b
    add(5,4)
    # 格式二:
    # 定義並呼叫:	結果 = (lambda 形參 : 返回值)(實參)
    c = (lambda a,b : a+b)(5,4)
    
    
  • 注意:

    • parameter:形參
    • arguments:實參
    • 函式引數位置:位置引數,可變引數,預設引數,字典引數