python的函式分類 Python函式分類及操作

2021-10-12 14:52:09 字數 2438 閱讀 8422

1 #定義函式

2 def func1():

3 """testing"""

4 print('in the func1')

5 return 0

7 #定義過程

8 def func2():

9 """testing2"""

10 print("in the func2")

12 #呼叫函式

13 x=func1()

15 #呼叫過程

16 y=func2()

17 print("from func1 return is %s "%x)

18 print("from func2 return is %s "%y)

傳參:1.預設引數特點:呼叫函式時,預設引數可有可無,非必須傳遞。傳遞後可以修改預設值,不傳遞則按照預設值輸出

用途:1.預設安裝  2.資料庫連線,預設埠號

1 def test(x,y=2): 2 print(x) 3 print(y) 4 test(1,3) 此處設定y預設為2,呼叫時可以不傳值。

2.關鍵字呼叫 print(y=2,x=1)

輸出結果 1,2  與形參位置無關。 與形參數量必須匹配

3.位置引數呼叫:與形參的位置一一對應賦值print(1,2)  1,2

4.二者混用,按照位置引數呼叫來

關鍵引數不可以寫在位置引數前面

5.(非固定引數)引數組:呼叫時,超過或少於形參的的數量個數,則報錯

#實參的數量不固定的情況下,則形參如何定義?

共有兩種方式

元祖形式及混合形式:

1 #實參的數量不固定的情況下,則形參如何定義?

2 #方法一

3 def test(*args):

4 print(args)

5 test(1,2,3,4,5)

6 #方法二

7 test(*[1,2,3,4,5])#*args=*[1,2,3,4,5] *args 接受n個位置引數,結果以元祖形式輸出

8 #位置引數和引數組結合起來定義

9 def test(x,*args):

10 print(x)

11 print(args)

12 test(1,2,3,4,5,6,7)

位置引數和引數組結合,輸出結果是1,(2,3,4,5,6,7).按照定義型別進行傳參

test(tuple[1,2,3,4,5])    報錯:'type' object is not subscriptable  「型別」物件不可下標  語法錯誤。

字典形式及混合形式:

1 #**kwargs 把關鍵字引數轉換成字典的形式輸出,接受n個關鍵字引數

2 def test(**kwargs):

3 print(kwargs)

4 #結果從字典中只取出值來列印

5 print(kwargs['name'])

6 print(kwargs['age'])

7 test(name='zhang',age=1,***='women')#此處使用位置引數

8 #直接以字典的形式輸出

9 '''**kargs test(name='zhang',age=1,***='women')==

10 test()#關鍵字的方式去賦值'''

11 #字典和位置引數共用

12 def test(name,age=1,**kwargs):#關鍵引數放到引數組前面

13 #結果從字典中只取出值來列印

14 print(name)

15 print(age)

16 print(kwargs)

(二)函式遞迴:函式在內部呼叫自己

1.必須有明確的結束條件

報錯: maximum recursion depth exceeded in comparison  超過最大遞迴次數(999)

2.每次進入更深一層的遞迴時,問題的規模較上次都要有所減少

3.遞迴的效率不高,遞迴的層次過多會導致溢位。(在計算機中,函式呼叫時通過棧這種資料結構實現的,每當進入乙個函式呼叫,棧就會增加一層棧幀,每當退出一層函式呼叫,棧就會減少一層棧幀。由於棧的大小不是無限的,,所以函式呼叫次數越多,會導致棧溢位。)

函式分類:

函式式程式設計:純函式式程式設計,無變數,只要輸入是確定的,輸出就是確定的

高階函式:

變數可以指向引數,函式的引數能接收變數,那麼乙個函式就能夠接收另乙個函式作為引數,這種函式就成為高階函式。

內建函式;

b=eval(b)  通過內建函式eval轉成字典

附:python的**機制是直譯器執行的,python直譯器中有引用計數。固定時間內會即時重新整理,清空掉沒有引用的內容。釋放記憶體

變數的記憶體**機制:沒有引用(定義了語句del,刪除值的變數名),立馬**。否則直到程式結束才會**。

標籤:函式,python,分類,test,引數,kwargs,print,def

python學習 內建函式(分類)

幫助 help 輸入輸出 dir input open print 基礎型別 hex divmod ascii oct int str ord bool tuple type bytes float chr complex 集合 dict set list zip bytearray frozens...

記憶體分配函式分類

有 4種用於記憶體分配的 api函式。虛擬 virtual 函式用於分配和管理大數量的記憶體,堆函式 heap 用於小數量記憶體,全域性函式 global 及區域性函式 local 用於小數量記憶體分配,這兩類函式是為了實現與 16位系統相容而提供的。win32 api 仍然維護全域性以及區域性的堆...

徑向基函式分類

大多數情況下,利用二維控制項線性是無法分類的,這個時候就需要將維度提高,在更高階的維度進行分類,徑向基函式是變換到高緯度的方法之一。目前,最常用的徑向基函式是高斯核函式,其公式如下 其中,xc為中心點座標,x為待分類的座標,x xc 為歐幾里得距離,為可調的寬度引數。python 徑向基函式,gam...