函數能夠分爲內置函數 和 自定義函數。此次關注的主要是自定義函數。定義函數以後,就能夠在任何須要它的地方調用。函數
1 返回值的重要性變量
返回值的3種狀況 數據類型
沒有返回值 ---- 返回None數據
不定 return註釋
只寫 return :結束一個函數字典
return None ---- 不經常使用習慣
只有一個返回值return
能夠返回任何數據類型參數
只要返回就能夠接收到
若是一個函數中有多個return ,那麼只執行第一個
返回多個值
用多個變量接收:有多少個返回值就用多少個變量接收
用一個變量接收:獲得一個元組
2 參數
形參:
實參:
沒有參數
定義函數和調用函數時括號裏都不寫內容
有一個參數
傳什麼就是什麼
有多個參數
位置參數
站在實參的角度上:
按照位置傳參
按照關鍵字傳參
混着用是能夠的,可是必須先按照位置傳參,再按照關鍵字傳參數;不能能夠同一個變量傳多個值
站在形參的角度上:
位置參數:必須傳,且有幾個參數就要傳幾個值
默認參數:能夠不傳,若是不傳就用默認參數,傳了就用傳的
只有調用函數時候:
按照位置傳:直接寫參數的值
按照關鍵字傳:關鍵字 = 值
定義函數的時候:
位置參數:直接定義參數
默認參數,關鍵字參數: 參數名 = ‘默認的值’
動態參數:能夠接受任意多個參數
參數名前加 * ,習慣用 *args(接收的是按照位置傳參的值,組織成一個元組)
參數名前加 ** ,習慣用 **kwargs(接收的是按照關鍵字傳參的值,組織成一個字典)
順序:位置參數,*args,默認參數,**kwargs
在形參的角度上,給變量加上一個 * ,就是組合全部傳過來的值
在實參的角度上,給一個序列加上 * ,就是將這個序列按照順序打散
3 函數的註釋
def func()
''''
這個函數實現了什麼功能
參數1:......
參數2:......
return:返回的東西是什麼
'''
4 函數上面的小坑
若是定義的時,形參的默認參數是一個可變數據類型,若是不傳值調用,調用都會用同一個(就是重複用這個)