Python函數(shù)操作及方法

一、函數(shù)概念

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。

二、函數(shù)作用

  1. 對(duì)某塊功能的代碼的封裝。
  2. 提高代碼的復(fù)用性(重用性)。
  3. 大大的提高了開(kāi)發(fā)效率。

三、函數(shù)定義和調(diào)用

定義:

def 函數(shù)名():
        pass

調(diào)用:

函數(shù)名()

注意:

  1. 函數(shù)是一次定義, 多次調(diào)用。
  2. 如果函數(shù)名相同, 后面的會(huì)覆蓋前面的同名函數(shù)。

四、函數(shù)參數(shù)概念

作用:

  • 進(jìn)一步的提高了一個(gè)沒(méi)有參數(shù)函數(shù)的復(fù)用性。

定義格式:

  • 形參:形式參數(shù)(有多少個(gè),看需求)。
def 函數(shù)名(形參1, 形參2, ...):
        pass

調(diào)用格式:

  • 實(shí)參:實(shí)際參數(shù)(有多少個(gè),看形參)。
函數(shù)名(實(shí)參1, 實(shí)參2, ...)

五、函數(shù)返回值

作用:

  • 把函數(shù)的內(nèi)部的數(shù)據(jù)拋到函數(shù)的外部途徑。

定義格式:

def 函數(shù)名(形參1, 形參2, ...):
        代碼邏輯
    return 數(shù)值

調(diào)用格式:

變量名 = 函數(shù)名(實(shí)參1, 實(shí)參2, ...)

參數(shù):

  • 函數(shù)外部數(shù)據(jù)傳遞到函數(shù)內(nèi)部。

返回值:

  • 函數(shù)內(nèi)部的數(shù)據(jù)拋到函數(shù)的外部。

retrun的作用:

  1. 結(jié)束函數(shù)。
  2. 給函數(shù)的調(diào)用者(執(zhí)行者)返回值。
  • 只有return -->None。
  • return 單個(gè)值:返回單個(gè)值,不改變數(shù)據(jù)類型。
  • return 多個(gè)值:以元組的形式返回。
  • 沒(méi)有return:默認(rèn)返回None。

六、函數(shù)參數(shù)分類

  1. 位置參數(shù):按順序一一對(duì)應(yīng),傳值即可。
  2. 關(guān)鍵字參數(shù):只需要書(shū)寫正確的形參名字。
  3. 缺省參數(shù):傳值即覆蓋。
  4. 不定長(zhǎng)參數(shù):*args,**kwargs。
  • 當(dāng)函數(shù)定義的時(shí)候(***的作用):

*, **代表聚合,*將實(shí)參對(duì)應(yīng)的所有位置參數(shù)聚合到一個(gè)元組,賦值給args,**將實(shí)參對(duì)應(yīng)的所有的關(guān)鍵字參數(shù)聚合到一個(gè)字典中,賦值給kwargs

  • 當(dāng)函數(shù)調(diào)用的時(shí)候(*,**的作用):

*,**代表打散。*是將所有的iterable元素打散成實(shí)參的位置參數(shù)。**是將字典的所有鍵值對(duì)打散成關(guān)鍵字參數(shù)。

<mark>形參的順序:位置參數(shù),*args, 缺省參數(shù), **kwargs</mark>

七、變量類型

1、局部變量

概念:

  • 定義在函數(shù)內(nèi)部的變量。

作用域:

  • 只能在自己的函數(shù)內(nèi)部使用。

2、全局變量

概念:

  • 定義在函數(shù)外部的變量。

作用域:

  • 在整個(gè)模塊內(nèi)部。

總結(jié):

  • 默認(rèn)情況下,如果函數(shù)內(nèi)部的變量和函數(shù)外部的變量同名,不是一個(gè)變量一個(gè)是全局,一個(gè)是局部。
  • 如果想利用函數(shù)修改全局變量的值:
def func():
    global 全局變量名

nonlocal:下級(jí)函數(shù)對(duì)上級(jí)函數(shù)非全局變量進(jìn)行修改。

  • 如果在函數(shù)內(nèi)部使用一個(gè)變量(順序):首先在函數(shù)內(nèi)部找局部變量,然后在函數(shù)外部的全局變量。
  1. 局部變量
*   開(kāi)辟內(nèi)存空間, 保存數(shù)據(jù)
*   函數(shù)內(nèi)部沒(méi)有可執(zhí)行代碼,局部變量就被銷毀,內(nèi)存回收。
  1. 全局變量
*   開(kāi)辟內(nèi)存空間, 保存數(shù)據(jù)
*   整個(gè)程序沒(méi)有可執(zhí)行的代碼,程序?qū)⑼顺?,全局變量銷毀,內(nèi)存回收。

八、函數(shù)名的應(yīng)用

  1. 函數(shù)名即函數(shù)地址。
  2. 函數(shù)名可以作為變量。
  3. 函數(shù)名可以作為函數(shù)的參數(shù)。
  4. 函數(shù)名可以作為函數(shù)的返回值。
  5. 函數(shù)名可以作為容器類類型的元素。

九、閉包

  • 內(nèi)層函數(shù)對(duì)外層函數(shù)非全局變量的引用,并將內(nèi)層函數(shù)函數(shù)名返回。
  • 機(jī)制:python解釋器遇到閉包,那么這個(gè)空間不會(huì)隨著函數(shù)的結(jié)束而釋放。
  • 閉包的應(yīng)用場(chǎng)景:裝飾器、爬蟲(chóng)。

十、迭代器與生成器

迭代器:

  1. 可迭代對(duì)象:內(nèi)部含有__iter__方法。
  2. 迭代器:內(nèi)部含有__iter__方法和__next__
  3. 可迭代對(duì)象–>迭代器iter(可迭代對(duì)象)。
  4. 迭代器取值__next__()、next()或for循環(huán)。

生成器:

  • 可以理解為一種數(shù)據(jù)類型,這種數(shù)據(jù)類型自動(dòng)實(shí)現(xiàn)了迭代器協(xié)議(其他的數(shù)據(jù)類型需要調(diào)用自己的內(nèi)置的__iter__方法),所以生成器就是可迭代對(duì)象。
  1. 生成器函數(shù)(含有yield)。
  2. 生成器推導(dǎo)式。
希望本文對(duì)你有所幫助~~如果對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、面試經(jīng)驗(yàn)交流感興趣可以加入我們。642830685,免費(fèi)領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口、框架搭建學(xué)習(xí)資料!技術(shù)大牛解惑答疑,同行一起交流。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容