第一階段 遍歷,閉包

2022-09-09 07:51:12 字數 1898 閱讀 8760

遍歷:就是對函式的內部方法重新呼叫函式自己

閉包:外部函式返回內嵌函式

我們先看乙個很簡單的函式(使用os.walk內建函式)

import os

def test_a(osptah):

for root,item,files in os.walk(osptah):

for file in files:

print(os.path.join(root,file))

好了,看下結果

自己編寫函式實現遍歷檔案

**(注意看內部方法呼叫函式自己)

deftest_b(ospath):

for i in os.scandir(ospath):

if os.path.isfile(i):

print(os.path.join(ospath,i))

elif os.path.isdir(i):

test_b(i)

結果

ok這就是遍歷是不是很簡單,下面開始介紹閉包

**結果

ok上面就是閉包了,接下來再看看不返回內部函式有啥區別

不返回內部函式**

def test_a(n):

num=n

def test_b():

print(num)

if __name__ == '__main__':

test_a(5)

結果

返回內部函式**

def test_c(n):

num = n

def test_b():

print(num)

return test_b

if __name__ == '__main__':

# test_a(5)

b=test_c(5)

b()

結果

咦,是不是發現有點意思了,那我們再看下乙個

**

def test_c():

n=0def test_b():

nonlocal n

n=n+1

print(n)

return test_b

if __name__ == '__main__':

# 當使用閉包時,變數並不會隨著函式的呼叫結束而銷毀

# 也就是可以保持程式上一次執行後的狀態然後繼續執行。

t=test_c()

t()t()

t()

結果

ok這個呢就是咱們的結論

1.內嵌函式必須引用乙個定義在閉合範圍內(外部函式裡)的變數——內部函式引用外部變數

2.外部函式必須返回內嵌函式——必須返回那個內部函式

第一階段練習

1 輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2 輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 小數部分3位寬度,整個數字9位寬度,空白部分使用0填充 include ...

第一階段 2015 12 2016 03

距離上一次寫部落格,大半年就過去了,這半年,都做了些什麼呢,生活又都有些什麼變化呢。2015的下半年是收穫的半年吧。第二,學ios的過程中結識了新的朋友,耳機哥,是很棒的一件事。第三,得到了乙份很美滿的愛情。最終在一起,還好沒錯過。第四,開始正視自己的不足,不再逃避,開始認真製作簡歷,並開始找工作,...

u boot第一階段

u boot 第一階段 位置 cpu arm920t start.s 流程分析 1.儲存一些全域性變數,用於啟動程式將 從flash拷貝到ram或其他使用。有一些變數的值是通過鏈結指令碼得到的,如 text base 位於board 2440 config.mk 中 bss start end 位於...