最全Python函數知識點,斯坦福教授耗時一月整理!

最全Python函數知識點,斯坦福教授耗時一月整理!


Python 函數

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。

函數能提高應用的模塊性,和代碼的重複利用率。Python提供了許多內建函數,比如print()。但也可以自己創建函數,這被叫做用戶自定義函數。

這是小編親自整理的python入門學習資料,關注,轉發,私信小編“01”即可免費獲取!

最全Python函數知識點,斯坦福教授耗時一月整理!


1.函數的定義:

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

  • 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱和圓括號()。
  • 任何傳入參數和自變量必須放在圓括號中間。圓括號之間可以用於定義參數。
  • 函數的第一行語句可以選擇性地使用文檔字符串—用於存放函數說明。
  • 函數內容以冒號起始,並且縮進。
  • pass 關鍵字,代表什麼都不幹
  • exit(num) 強行退出(num:是一個數字,顯示為退出碼)
  • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回 None。

語法

最全Python函數知識點,斯坦福教授耗時一月整理!

默認情況下,參數值和參數名稱是按函數聲明中定義的的順序匹配起來的。

舉例1:

最全Python函數知識點,斯坦福教授耗時一月整理!

舉例2:

最全Python函數知識點,斯坦福教授耗時一月整理!

運行結果:

最全Python函數知識點,斯坦福教授耗時一月整理!

2.函數的調用

定義一個函數只給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。

這個函數的基本結構完成以後,你可以通過另一個函數調用執行,也可以直接從Python提示符執行。

如下實例調用了add()函數:

最全Python函數知識點,斯坦福教授耗時一月整理!

運行結果:

最全Python函數知識點,斯坦福教授耗時一月整理!

3.函數的參數

形式參數和實際參數

在定義函數時,函數名後面,括號中的變量名稱叫做形式參數,或者稱為"形參"

在調用函數時,函數名後面,括號中的變量名稱叫做實際參數,或者稱為"實參"

最全Python函數知識點,斯坦福教授耗時一月整理!

函數默認參數:

缺省參數(默認參數)

最全Python函數知識點,斯坦福教授耗時一月整理!

定義:

最全Python函數知識點,斯坦福教授耗時一月整理!

調用:

最全Python函數知識點,斯坦福教授耗時一月整理!

我們經常在看別人的代碼中,經常出現def(*args, **kwargs)這樣的表現形式:

最全Python函數知識點,斯坦福教授耗時一月整理!

4.函數的返回值

函數返回值:

函數被調用後會返回一個指定的值

函數調用後默認返回None

return返回值

返回值可以是任意類型

return執行後,函數終止

return與print區別

最全Python函數知識點,斯坦福教授耗時一月整理!

5.函數的變量

局部變量和全局變量:

Python中的任何變量都有特定的作用域

在函數中定義的變量一般只能在該函數內部使用,這些只能在程序的特定部分使用的變量我們稱之為局部變量

在一個文件頂部定義的變量可以供文件中的任何函數調用,這些可以為整個程序所使用的變量稱為全局變量。

最全Python函數知識點,斯坦福教授耗時一月整理!

外部變量被改(x由100改為101):

最全Python函數知識點,斯坦福教授耗時一月整理!

內部變量外部也可用:

最全Python函數知識點,斯坦福教授耗時一月整理!

統計程序中的變量,返回的是個字典

最全Python函數知識點,斯坦福教授耗時一月整理!

結果:

{'y': 1, 'x': 1}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.sourcefileloader object="" at="">, '__spec__': None, '__annotations__': {}, '__builtins__': <module>, '__file__': 'D:/PycharmProjects/PythonLive/untitled/day07/demo2.py', '__cached__': None, 'x': 100, 'fun': <function>}
/<function>/<module>

6.匿名函數

顧名思義就是沒有名字的函數,那為什麼要設立匿名函數,他有什麼作用呢?

lambda 函數是一種快速定義單行的最小函數,可以用在任何需要函數的地方

python 使用 lambda 來創建匿名函數。

  • lambda只是一個表達式,函數體比def簡單很多。
  • lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
  • lambda函數擁有自己的命名空間,且不能訪問自有參數列表之外或全局命名空間裡的參數。
  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。


語法

lambda函數的語法只包含一個語句,如下:

最全Python函數知識點,斯坦福教授耗時一月整理!

舉例:

求兩數的乘積:

常規寫法:

最全Python函數知識點,斯坦福教授耗時一月整理!

lambda版本寫法:

最全Python函數知識點,斯坦福教授耗時一月整理!

7.高階函數

(1)map(f, list)

返回每個元素通過f計算完的value的list

map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,並把結果作為新的list返回。

舉例:計算列表裡值的平方

最全Python函數知識點,斯坦福教授耗時一月整理!

結果:

最全Python函數知識點,斯坦福教授耗時一月整理!

(2)reduce(f,list)函數(求list中數的和)

reduce把一個函數作用在一個序列[x1, x2, x3...]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算,其效果就是:

舉例:計算列表中所有數的和

最全Python函數知識點,斯坦福教授耗時一月整理!

(3)filter()函數(過濾)

filter函數接收一個函數f和一個list,函數f的作用是對每個元素進行判斷,返回True或者False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回符合要求的元素組成的list

filter(lamdba x: x%2 ==1, [1, 2, 3, 4, 5])

舉例:計算list中小於7的數

最全Python函數知識點,斯坦福教授耗時一月整理!

(4)sorted()函數(排序)

sorted(...)

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

最全Python函數知識點,斯坦福教授耗時一月整理!

舉例:

最全Python函數知識點,斯坦福教授耗時一月整理!


分享到:


相關文章: