回顧:
1. Python的函數的概述函數定義函數調用2. Python函數中參數的類型和返回值形參和實參形參類型:普通參數: 實參的傳遞的順序和個數和形參一直關鍵字參數: 指定傳遞的實參被特定形參接收默認參數: 形參中設定當前參數的默認值可以不傳遞設定了默認參數的實參不定長參數:一個形參能夠接收任意多個實參*args:普通普通收集參數的**kwargs:關鍵字收集參數實參類型:傳遞方式普通實參關鍵字實參返回值:return關鍵字返回數據結果結束當前函數return返回多個結果數據,數據類型tuple過程式函數和非過程式函數
3. 函數文檔的使用
1.使用help()方法來查看某一個函數的說明和幫助文檔
2. 函數名稱.__doc__: 返回說明文檔自定義函數文檔:格式:在定義函數后用'''三引號加上注釋(def 下一行) 優點:方便與后期的維護提高代碼的可讀性
4.參數的傳遞
實際參數: 數據對象對象的類型:可變對象: list dict不可變對象: number, tuple, string參數的傳遞:可變的對象:地址傳遞不可變對象:值傳遞
5.變量的作用域
全局變量:在內置哈數中,可以調用在內置函數中,不可修改
局部變量:在內置函數中,可以調用在函數外調用,使用global修飾后,即可訪問
作業解答
回顧
1.變量定義的語法
2.標識符命名規則
3.數據類型
4.常見的運算符
5.分支結構
6.循環結構
7.函數效率: 總結 + 計劃
今日概要
1.python中變量的作用域
2.python中函數的遞歸
3.python的閉包
一、python中變量的作用域
1.global關鍵字將局部變量的作用域提升全局變量1.變量的有效范圍向函數內部傳遞2.如果其他函數內部沒有使用global,當前函數可以訪問外部的全局變量,不能修改3.在單簽的函數內部使用global修飾外部變量,在當前哈數 中可以修改4.其他的哈數對于使用global修飾外部變量的函數來說,沒有提升的效果2.nonlocal 關鍵字在內置函數(嵌套的函數中)使用1.在局保護函數中的局部使用2.將當前哈數中的變量的作用域提升到上一層,僅僅提升一層,在此層中必要得聲明3.允許和global一起使用
綜合案例
def one():def two():num="11" def three():nonlocal numnum="22" def four():global num num="33" num="00" two()print(num) three()print(num) four()print(num)
one()
print(num)
二、函數的遞歸
1.概念在哈數的哈數體中調用該函數本省(自己調用自己)2.案例求階乘求fib數列
3.注意事項1.查找遞歸的規則,設置退出遞歸的條件2.使用遞歸可能影響程序的執行性能(賊費性能)3.使問題簡單化(盡量不要使用)
4.練習1.使用遞歸求階乘2.(擴展)求Fib數列第n為的值?
三、python中閉包
1.概念在一個外部函數中定義一個內部函數,函數的嵌套內部函數使用了外部函數的變量,并且外部函數的返回值是內部函數的引用外函數傳遞給內函數的數據,不會隨著外部函數執行完就沒了,就好像綁定在了內部函數中似的
2.修改內函數中的數據需要使用nonlocal進行修飾
3.閉包的優點提高代碼的復用性對數據進行存儲和封裝,提高數據安全性