取精華.去糟粕:重基礎,促創新
一.定義函數,調用函數
1.函數概述
函數是組織好的、可重複使用的、用戶實現單一或者關聯功能的代碼段.函數能夠提高應用的模塊性和代碼的重複利用率.Python提供了很多內置的函數,比如len等等,另外也可以根據自己的業務需求進行用戶自定義函數的創建
2.函數定義規則
函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()
任何傳入參數和自變量必須放在圓括號中間
函數的第一行語句可以選擇性地使用文檔字符串---用於存放函數說明
函數內容以冒號起始,並且縮進
語法格式:
def函數名([參數列表]): #參數列表可選項
函數體
示例:
3.調用函數
def函數名([參數列表]): #參數列表可選項
函數體
語法格式:
函數名([參數列表])
函數名其實就是指向一個函數對象的引用,完全可以把函數名賦值給一個變量,相當於給這個函數起了一個別名
示例:
二.函數參數
1.形參和實參的概念
示例:
2.函數參數的分類
必備參數:
函數定義中允許擁有多個形參,因此函數在調用的時候,也可能包含多個實參。向函數傳遞參數的方式有很多,通過實參和形參的順序對應,這就是位置實參。只有位置一致,才能被正確匹配。位置實參是最簡單也最常用的關聯方式
關鍵字參數:
默認值參數:
函數定義的時候,設置的參數是形參。那麼也可以給每個形參指定一個默認值。當調用函數時,如果沒有傳入實參,就使用形參的默認值。如果調用的時候傳入了實參,那麼程序將使用傳入的實參
不定長參數:
需要一個函數能處理比當初聲明時更多的參數,這些參數叫做不定長參數.
語法格式:
示例:
注意:加了星號(*)的變量名會存放所有未命名的變量參數。加了(**)會存放所有命名的變量參數
3.可變對象與不可變對象的傳遞
在 python中,strings, tuples, 和 numbers 是不可更改的對象,而list,dict,set等則是可以修改的對象。
不可變類型:變量賦值 a=5後再賦值 a=10,這裏實際是新生成一個 int值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
可變類型:變量賦值 la=[1,2,3,4]後再賦值 la[2]=5則是將 listla 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了
4.函數參數--可變對象與不可變對象(傳遞的時候)
不可變類型:如整數、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a本身。
可變類型:如列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響