資源簡介 (共25張PPT)函數拓展課前回顧1、函數的嵌套在一個函數中定義了另外一個函數。分為外函數和內函數2、函數的參數拓展必備參數、關鍵字參數、默認參數、“函數”參數3、函數的返回值拓展“函數”返回值、"return函數名()"調用內函數、"return函數名"調用內函數情境引入在之前的課程中,我們學習函數的創建與調用,了解函數各種的特性。在本節課,我們會認識兩種不同尋常的函數,來幫助我們更加深層次的理解函數。循序善誘第一種函數,它不使用def關鍵字創建第二種函數可以幫助我們解決"斐波那契數列"這一數學問題。循序善誘本節課我們要學習匿名函數與遞歸函數~新知教授2、遞歸函數1、匿名函數3、課堂總結匿名函數新知教授Python使用lambda關鍵字創造匿名函數。為了解決那些功能很簡單的需求而設計的一句話函數。匿名函數比我們之前創建的函數的結構更為簡單思維構建格式:函數名 = lambda 參數 :返回值匿名函數并不是真的不能有名字,而是不使用def關鍵字定義函數。思維構建匿名函數是單個的表達式,不是一個代碼塊。匿名函數的設計是為了滿足簡單函數的場景。calc = lambda n:n**n # 匿名函數賦值給變量進行調用print(calc(10))具有復雜邏輯的函數還是要def定義編玩邊學匿名函數參數可以有多個,用逗號隔開# 使用def定義的函數def add( x, y ):return x + yadd() # 調用函數# 使用lambda定義的函數add = lambda x, y: x + y匿名函數不管邏輯多復雜,只能寫一行,且邏輯執行結束后的內容就是返回值編玩邊學匿名函數也是可以嵌套的action = (lambda x: (lambda y: x + y))a = action(10) # 返回lambda y: x + yprint(a(5)) # 調用lambda y: x + y和def函數的嵌套原則一樣遞歸函數新知教授遞歸是一種計算過程。一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解。遞歸和洋蔥很像哦思維構建直接或間接的調用自身的函數,稱為遞歸函數。# 遞歸函數def sum1(a):if a==1:return 1else:return a+sum1(a-1) # 調用自身print(sum1(5))計算1+2+3+4+5=?編玩邊學在使用遞歸函數時,需要注意必須有一個明確的遞歸結束條件,稱為遞歸出口。# 遞歸函數def sum1(a):if a==1:returnsum1(a-1) # 調用自身,無結束條件print(sum1(5))# 運行結果為None程序不能求和了,陷入死循環新知教授斐波那契數列因數學家列昂納多·斐波那契以兔子繁殖為例引入,故又稱為兔子數列。新知教授兔子數列描述:如果兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子,假設所有的兔子都不死,那么一年后可以繁殖多少對兔子呢?思維構建1、1、2、3、5、8、13、21、34、55、89、144……這個數列從第3項開始,每一項都等于前兩項之和。如何設計程序算出指定項數的斐波那契數?編玩邊學非遞歸函數實現def Fibonacci(n):a = 0b = 1sum1 = 0if n <= 2:sum1 = 1else:for i in range(1, n):sum1 = a + ba = bb = sum1print(sum1)Fibonacci(3) # 輸入指定項數,調用函數需要使用循環結構編玩邊學遞歸函數實現def fabonacci(n):if n <= 2:sum1 = 1return sum1sum1 = fabonacci(n-1)+fabonacci(n-2)# 調用自身return sum1print(fabonacci(2))使用遞歸函數調用自身,大大簡化了代碼結構實踐創作適當使用匿名函數與遞歸函數可大大簡化我們的函數結構,減少代碼量。嘗試使用它們精簡自己的函數吧!課堂總結1、匿名函數格式:函數名 = lambda 參數 :返回值2、遞歸函數直接或間接的調用自身的函數,稱為遞歸函數。3、斐波那契數列這個數列從第3項開始,每一項都等于前兩項之和。分享交流同學們今天寫代碼有沒有遇到什么問題?演示今天打印的代碼同學們,要加油哦!下節課見啦 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫