第七章
第七章:函式
7.1 函式的概念
函式可以理解為實現某種功能的程式碼塊,這樣當程式中需要這個功能時就可以直接呼叫,而不必每次都編寫一次。這就好比生活中使用計算器來計算,當需要計算時,直接使用計算器輸入要計算的數,計算完成後顯示計算結果,而不必每次計算都通過手寫演算出結果。
7.2 函式的定義
在上述語法格式中,需注意以下幾點:
def(即define,定義)為關鍵字,表示定義一個函式。
函式名是一個識別符號,注意不能與關鍵字重名。
小括號之間可以用於定義引數,引數是可選的,但小括號不可少。
函式體以冒號起始,並且縮排。
函式體的第一行語句可以選擇性地使用文件字串用來存放函式說明。
return [表示式]結束函式,將表示式的值返回給呼叫者,也可以省略。
7.3 函式的定義
7.3.1 位置引數
位置引數是指函式呼叫時傳遞實參的順序與定義函式的形參順序一致,如例所示。
7.3.2 關鍵引數
關鍵引數是指通過對形參賦值傳遞的引數。關鍵引數允許函式呼叫時傳遞實參的順序與定義函式的形參順序不一致,因為 Python直譯器能夠用形參名匹配實參值,使使用者不必記住位置引數的順序,如例所示
7.3.3 預設引數
如果在函式定義時引數列表中的某個形參有值,就稱這個引數為預設引數。注意預設引數必須放在非預設引數的右側,否則函式將出錯,如例所示。
7.4 函式的返回值
函式呼叫時的引數傳遞實現了從函式外部向函式內部輸入資料,而函式的return語句實現了從函式內部向函式外部輸出資料。
此處需注意,如果函式定義時省略return語句或者只有return而沒有返回值,則Python將認為該函式以“return None”結束,None代表沒有值,如例所示。
7.5 變數的作用域
變數起作用的程式碼範圍稱為變數的作用域,與變數定義的位置密切相關,按照作用域的不同,變數可分為區域性變數和全域性變數。
7.5.1 區域性變數
7.5.2 全域性變數
7.6 函式的巢狀呼叫
在例中,第6行在fun2()函式中呼叫fun1()函式,程式執行時會跳轉到fun1()函式處去執行,執行完fun1()後,接著執行fun2()函式中剩餘的程式碼,如圖所示。
7.7 函式的遞迴呼叫
在函式的巢狀呼叫中,一個函式除了可以呼叫其他函式外,還可以呼叫自身,這就是函式的遞迴呼叫。遞迴必須要有結束條件,否則會無限地遞迴(Python預設支援997次遞迴,多於這個次數將終止)。
相關文章
- 第七章 字串字串
- 第七章習題
- 第七章 事務
- 第七章 函式函式
- 第七章練習題
- 第七章作業3
- CSAPP 第七章 連結APP
- 第七章-類基礎
- 第七章練習題2
- 第七章練習題4
- 第七章 事件處理器事件
- 第七章:XAMLvs.code(3)
- jQuery第七章知識點jQuery
- 第七章、Groovy物件導向物件
- jQuery第七章課後作業jQuery
- python第七章課後習題Python
- Redis-第七章節-持久化Redis持久化
- mysql學習12:第七章:事務MySql
- Flask教程第七章:錯誤處理Flask
- 第七章 外接感測器實驗
- Laravel 第七章學習——會話管理Laravel會話
- 【第七章】XSS 跨站指令碼漏洞指令碼
- logback官方文件中文翻譯第七章:FiltersFilter
- 程式是怎麼跑起來的第七章
- 《程式是怎樣跑起來的》第七章
- 在國企的日子(第七章 轉正)
- 第七章 回溯演算法part01演算法
- 第七章 回溯演算法part03演算法
- 控制之美1-第七章-主要公式公式
- 【QBKbupt】第七章 圖 C. 圖練習3
- 第七章——程式設計語言基礎知識程式設計
- 第七章:因數分解與算數基本定理(1)
- 第七章:因數分解與算數基本定理(2)
- 併發系列64章(TPL 資料流)第七章
- Java從入門到精通 第七章 類和物件Java物件
- Mudo C++網路庫第七章學習筆記C++筆記
- 【譯】 WebSocket 協議第七章——關閉連線(Closing the Connection)Web協議
- 《計算機網路》第七章:應用層(The Application Layer)計算機網路APP