Python程序設計(9)-----函數和代碼複用

複習之前的內容
基礎語法體系第一部分是基本數據類型。
首先講解數字類型和操作
在這裏插入圖片描述

在這裏插入圖片描述

python基礎語法體系第二部分是 程序的控制結構
分支結構
在這裏插入圖片描述

循環結構
在這裏插入圖片描述

方法論:python基本代碼抽象即函數的使用方法
實踐能力:學會編寫帶有函數並複用代碼的程序

函數的定義與使用

函數的理解與定義
函數是一段代碼的表示

  • 函數是一段具有特定功能的、可重用的語句組
  • 函數是一種功能的抽象,一般函數表達特定功能

兩個作用:降低編程難度代碼複用

例如,我們定義一個求平方的功能的函數,我們只需利用這個函數去求平方即可。函數具體怎麼實現我們不關心。(降低編寫代碼的難度,通過功能將一部分的任務隔離開我們當前的程序。)
當你寫了一個具有可重用價值的功能之後,我們可以在不同的代碼位置,去調用這個功能。實現代碼複用。
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述函數就是IPO的實現。也是完整代碼的封裝。
函數的使用及調用過程
調用是一個專有名字,它指的是運行函數代碼的方式。
定義不會執行這段代碼,執行是需要使用函數調用
在這裏插入圖片描述在這裏插入圖片描述函數的參數傳遞
在這裏插入圖片描述在這裏插入圖片描述所有可選參數,一定要在非可選參數後面。
在這裏插入圖片描述

可變參數:可以設計函數接收的參數是可變數量的。(不確定多少個)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

函數的返回值
在這裏插入圖片描述
在這裏插入圖片描述
局部變量和全局變量
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
global保留字,用全局變量
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

如果一個組合數據類型在函數中創建,那麼它就是這個函數的局部變量了。
在這裏插入圖片描述

lambda函數
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

編寫代碼是,建議使用def return 定義,謹慎使用lambda函數。

在這裏插入圖片描述

小結:
在這裏插入圖片描述

代碼複用與遞歸

代碼複用與模塊化設計
將編寫的代碼當作一種資源,並且對這種資源進一步抽象。
在這裏插入圖片描述

在不同的程序設計語言中,都有代碼複用的相關功能。
一般來說,我們使用函數和對象這兩種方式來實現代碼複用。
函數和對象是對代碼進行抽象的不同級別。
在這裏插入圖片描述

在代碼複用的基礎上,程序猿可以開展模塊化設計。
模塊化設計基於一種邏輯的設計思維,叫做分而治之。
在這裏插入圖片描述

模塊化設計有兩個基本的概念
在這裏插入圖片描述

參數和返回值是交流通道,越少,越清晰,它的複用可能性就會越高。

函數遞歸的理解
調用函數自身的方式就是遞歸。
遞歸定義中有兩個關鍵的特性,我們叫他鏈條和基例
在這裏插入圖片描述

遞歸有個高大上的說法就是數學歸納法。
在這裏插入圖片描述

函數遞歸的調用過程
如果要實現遞歸,我們要利用函數和分支語句進行組合。
在這裏插入圖片描述

遞歸的調用過程,就是函數的計算機運算過程。
函數相當於一個模板。
計算機在對每一個賦予的參數,去運算時,會將函數的模板拷貝一份,放到計算機某內存中,用實際給定的參數去運算。如果運算過程中又遇到了一個函數,還會在計算機中開闢一個新內存,再去運算。
遞歸利用了這一過程,不斷的調用程序自身。
函數定義的過程,調用的是自身,函數執行的過程,調用的是不同的自身代碼的不同發覆製版本。

函數遞歸實例解析
示例一:
字符串反轉(之前可以用s[::-1]實現)
在這裏插入圖片描述
示例二:
在這裏插入圖片描述
示例三:漢諾塔問題
在這裏插入圖片描述

我們要輸出兩個參數,
第一我們要知道 對於給定數量的圓盤,從最左側到最右側需要多少步驟。
第二要知道該怎麼做?

定義全局變量,如果是內部變量,每次調用初值都會被清零。
函數內用global關鍵字。
在這裏插入圖片描述

小結:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章