第十二章 python3 函式

2022-08-14 07:12:14 字數 2392 閱讀 5024

今天我們開始學習下python中函式function;

函式是一段實現單一功能的**段,可以提高應用的模組性和**的重用率。前面我們已經接觸過一些python的內建函式,

比如:print(),input(),len(),type(),id()等等

我們可以使用def關鍵字自定義函式 ,格式如下:

def 函式名 (引數列表):

pass

函式體

python識別符號的命名遵循駝峰命名法,即包含多個單詞時首字母需要大寫,其餘字母小寫;也可以使用下劃線( _ )把每個單詞分開,字母全部小寫;

為了提高**的可讀性,變數名,函式名,類名等都需要遵守駝峰命名規則。

注意,pep 8 規範建議函式在定義和呼叫時,**前面需要空兩行。

使用return關鍵字可以返回乙個值,也可以同時返回多個值(這個厲害了);返回多個值時會封裝乙個元組tuple裡。函式可以有返回值,也可以沒有返回值;

定義乙個空函式,例項**:

pass語句一般在函式或者類裡面出現的比較多,如果你的**實現暫時沒想好怎麼寫的話,可以用pass來代替,如果你留空的話程式是會報錯的。

引數可以是各種物件,引數的型別大概分為這幾種:

必需引數:函式呼叫時引數的順利和數量必須和宣告時的一致,否則是會報錯的。

關鍵字引數:函式呼叫時引數的順序與宣告時可以不一致,因為 python 直譯器能夠用引數名匹配引數值。

預設引數:呼叫函式時如果沒有傳遞引數,則會使用預設引數,預設引數必須放在最後面,否則會報

動態引數:當需要傳遞更多的引數時有兩種方式,一種是*乙個星引數,表示參數是以元組形式傳遞進來

,另外一種是 **兩個星引數,表示引數是以字典形式傳遞進來;

例項**:

3、匿名函式

python使用lambda表示式來建立匿名函式,

形式如下:lambda 引數列表:表示式

4、變數作用域 legb

l (local) 區域性作用域

e (enclosing) 閉包函式外的函式中

g (global) 全域性作用域

b (built - in) 內建作用域(內建函式所在模組的範圍)

變數作用域查詢規則:l –> e –> g –>b

即在區域性找不到,便會去區域性外的區域性找(例如閉包),再找不到就會去全域性找,再者去內建中找。

例項如下:

在函式巢狀中內層函式func_inner() 就是乙個閉包函式。

定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。

區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。

呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。

當內部作用域想修改外部作用域的變數時,可以用global和nonlocal關鍵字,例項**:

如果要修改巢狀作用域(enclosing 作用域,外層非全域性作用域)中的變數則需要 nonlocal 關鍵字:

第十二章 python異常

了解什麼是異常 掌握如何使用try.except語句捕獲異常 掌握try.except.else語句的應用 掌握try.except.finally語句的應用 掌握如何使用raise語句丟擲異常 掌握如何使用自帶的idle工具進行除錯 掌握如何使用assert語句除錯程式 12.1 異常概述 比如關...

第十二章 檔案

文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...

第十二章 dp

動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...