******************* 函數 ******************
定義函數
def關鍵字,依次寫出函數名、括號、括號中的參數和冒號 :
在縮進塊中編寫函數體,函數的返回值用 return 語句返回。
def func():
pass --pass 佔位符
return --返回語句#函數在執行過程中一旦遇到return,函數就執行完畢,並將結果返回。
#函數在執行過程中沒有遇到return時,返回值None.[object Object]
調用函數
Python 內置了很多有用的函數,我們可以直接調用:
abs() --求絕對值函數
cmp() --比較函數
數據類型轉換函數:
int(), float(), str(),unicode(),bool()理解函數名定義函數
def關鍵字,依次寫出
函數名與變量名類似,其實就是指向一個函數對象的引用;
給這個函數起了一個“別名”:函數名賦給一個變量空函數
定義一個什麼事也不做的空函數,可以用 pass 語句;
pass 可以用來作爲佔位符,還沒想好怎麼寫函數的代碼,就可以先放一個 pass ,讓代碼能運行起來
def nofunc():
pass參數檢查
調用函數時,如果參數個數不對,Python 解釋器會自動檢查出來,並拋出 TypeError;
如果參數類型不對,Python 解釋器就無法幫我們檢查。
數據類型檢查可以用內置函數 isinstance 實現函數返回值
函數可以返回多個值嗎?那編寫python程序,思考下:
定義一個函數func,傳入兩個數字,返回兩個數字的平均值與最大值。
函數返回值用return關鍵字;
返回一個 tuple 可以省略括號;
Python 的函數返回多值其實就是返回一個 tuple函數執行完畢也沒有 return 語句時,自動 return None函數參數
默認參數可以降低調用函數的難度。
定義一函數,計算x值的n次方。那如果計算x平方時只需要傳入x值時怎麼解決?
★默認參數注意事項:
有多個參數時,變化大放前面,變化小的放後面;
必選參數在前,默認參數在後默認參數
# 默認參數,必選參數同時存在函數中存在時,一定要將必選參數放在默認參數前面;
# 設置默認參數時,把變化大的參數放前面,變化小的參數放後面,變化小的參數可以設置爲默認參數。可變參數*args
- 可變參數就是傳入的參數個數是可變的,可以是 1 個、2 個到任意個,還可以是 0 個。# 定義函數時,形參可以爲*args,使函數可以接收多個參數,接收的數據類型爲元組;
# 如果想將一個列表或者元組傳入函數,也可通過*li 或 *t,將參數傳入函數裏。關鍵字參數**kwargs
關鍵字參數允許你傳入 0 個或任意個含參數名的參數;
這些關鍵字參數在函數內部自動組裝爲一個 dict;
關鍵字參數用**kwargs參數組合
參數組合是指可以必選參數、 默認參數、 可變參數和關鍵字參數一起使用。
參數定義的順序必須是:必選參數、 默認參數、可變參數和關鍵字參數。參數總結
必選參數 > 默認參數 > 可變參數(*args)元組 > 關鍵字參數(**kwargs)字典
1).必選參數
2).默認參數:默認參數一定要用不可變對象
3).可變參數:*args 是可變參數,args 接收的是一個元組 tuple
4).關鍵字參數:**kwargs 是關鍵字參數,kw args接收的是一個字典dict
對於任意函數,都可以通過類似 func(*args, **kwargs) 的形式調用它變量的作用域
局部變量:只能在函數內部使用的變量
全局變量:在整個程序中使用的變量
global關鍵字:強制將局部變量轉換爲全局變量