《瘋狂Python講義》之函式和lambda表示式

2021-10-01 07:28:50 字數 1339 閱讀 9664

函式就是python程式的重要組成單位,乙個python程式可以由很多個函式組成。

定義函式和呼叫函式

定義函式的語法格式如下:

def 函式名(形參列表):

// 由0條到多條可執行語句組成的函式

[return[返回值]]

如果程式需要有多個返回值,既可將多個值包裝成列表之後返回,也可直接返回多個值。如果python函式直接返回多個值,python會自動將多個返回值封裝成元組。

遞迴函式

在乙個函式體內呼叫它自身,被稱為函式遞迴。函式遞迴包含了一種隱式的迴圈,它會重複執行某段**,但這種重複執行無需迴圈控制。

關鍵字(keyword)引數

按照形參位置傳入的引數被稱為位置引數。如果使用位置引數的方式來傳入引數值,則需要按照定義函式時指定的順序來傳入引數值;如果根據引數名來傳入引數值,則無須遵守定義形參的順序,這種方式被稱為關鍵字(keyword)引數。

如果希望在呼叫函式時混合使用關鍵字引數和位置引數,則關鍵字引數必須位於位置引數之後。

引數預設值

形參指定預設值的語法格式如下:

形參名 = 預設值
python要求將帶預設值的引數定義在形參列表的最後。

引數收集(個數可變的引數)

python允許在形參前面新增乙個星號(*),這樣就意味著該引數可接受多個引數值,多個引數值被當成元組傳入。

python還可以收集關鍵字引數,此時python會將這種關鍵字引數收集成字典,為了讓python能收集關鍵字引數沒需要在引數前面新增兩個星號。

逆向引數收集

逆向引數收集,指的是在程式已有列表、元組、字典等物件的前提下,把它們的元素「拆開」後傳給函式的引數。

逆向引數收集需要在傳入的列表、元組引數之前新增乙個星號,在字典引數之前新增兩個星號。

python中被放在函式體內定義的函式稱為區域性函式,區域性函式對外部是隱藏的,只能在其封閉函式內有效。

函式本身也是乙個物件,函式既可用於賦值,也可用作其他函式的引數,還可作為其他函式的返回值。

使用函式變數

python的函式也是一種值:所有函式都是function物件,這意味著可以把函式本身賦值給變數,就像把整數、浮點數、列表、元組賦值給變數一樣。當把函式賦值給變數之後,接下來程式也可通過該變數來呼叫函式。

使用函式作為函式形參

如果希望呼叫函式時能動態傳入這些**,那麼就需要在函式中定義函式形參,這樣即可在呼叫該函式時傳入不同的函式作為引數,從而動態改變這段**。

使用函式作為返回值lambda表示式的語法格式如下:

lambda [parameter_list]: 表示式

《瘋狂Python講義》之異常處理

異常機制已經成為衡量一門程式語言是否成熟的標準之一,使用異常處理機制的python程式有更好的容錯性,更加健康。python的異常處理機制可以讓程式具有極好的容錯性。使用try except捕獲異常 語法結構如下 try 業務實現 except error1,error2,as e alert 輸入...

《瘋狂Python講義》之檔案IO

pathlib模組提供了一組物件導向的類,這些類可代表各種作業系統上的路徑,程式可通過這些類操作路徑。程式在建立purepath和path時,即可傳入單個路徑字串,也可以傳入多個路徑字串,purepath會將它們拼接成乙個字串。pp pureposixpath crazyit some path i...

python瘋狂講義筆記(列表元組和字典)

python內建的 三種常用資料結構 列表 list 元組 tuple 和 字 典 dict 列表和元組比較相似,它們都按順序儲存元素 每個元素都有自己的索引,因此列表和元組都可通過索引訪問元素 二 者的 區 別 在 於元組是不可修改的,但列表是可修改的 字典則以 key value的形式儲存資料 ...