01月05日 三周四次【Python基礎進階】
阿新 • • 發佈:2018-01-09
是個 快速 files 函數 true 結果 lis pre 序列 1.8 遞歸列出目錄裏的文件
1.9 匿名函數
1.9 匿名函數
1.8 遞歸列出目錄裏的文件
#### 遍歷目錄裏的文件(不支持子目錄文件) import os for i in os.listdir(‘C:/Users/Administrator/Desktop/技術文檔‘): print (i) ########################################### #### 目錄是否存在 import os d = os.path.isdir(‘C:/Users/Administrator/Desktop/技術文檔/.‘) print(d) > True #### 文件是否存在 import os d = os.path.isfile(‘C:/Users/Administrator/Desktop/技術文檔‘) print(d) > False #### 路徑連接 import os d = os.path.join(‘C:/Users/Administrator/Desktop‘,‘aa‘,‘bb‘) print(d) > C:/Users/Administrator/Desktop\aa\bb ###################################################### #### 遍歷目錄裏的文件和子目錄裏的文件 import os def print_files(path): lsdir = os.listdir(path) dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))] files = [i for i in lsdir if os.path.isfile(os.path.join(path, i))] if files: for f in files: print(os.path.join(path, f)) if dirs: for d in dirs: print_files(os.path.join(path, d)) print_files(‘C:/Users/Administrator/Desktop/技術文檔‘)
1.9 匿名函數
匿名函數
- lambda函數是一種快速定義單行的最小函數, 可以用在任何需要函數的地方
lambda
defun(x, y): return x*y # r = lambda x,y:x*y print(r(2,3)) # 調用 > 6
- 匿名函數優點:
- 1.使用python寫一些腳本時, 使用lambda可以省去定義函數的過程, 讓代碼更加精簡
- 2.對於一些抽象的, 不會被別的地方再重復使用的函數, 有時候函數起個名字也是個難題, 使用lambda不需要考慮命名的問題
- 3.使用lambda在某些時候讓代碼更容易理解
lambda基礎
- lambda語句中, 冒號前是參數, 可以有多個,逗號隔開, 冒號右邊是返回值
- lambda語句構建的其實是一個函數對象
lamdba使用
from functools import reduce def add(x, y): return x + y sum = reduce(add, range(1,101)) print(sum) > 5050 # from functools import reduce print(reduce(lambda x,y:x+y, range(1,101))) > 5050
習題
- 從終端接收若幹個數字,要求使用filter()函數,將輸入的不是數字的值剔除掉(用戶輸入的內容有隨機性,當我們要接收一個數字的時候,他可能會輸入一個字符串過來,要求當用戶輸入的不是數字,就剔除掉)
- 從終端接收若幹個以空格隔開的字符串,然後去除所有的26個字符之外的字符後,打印到屏幕上
要求:使用map()函數,map()函數接收兩個參數,一個是函數,一個是Iterable,map將傳入的函數依次作用到序列的每個元素,並把結果作為新的Iterator返回。
- 從終端接收若幹個以空格隔開的字符串
(1).以空格隔開的字符串為用戶想要輸入的一個值
(2).用戶在輸入時不小心按出來了字母鍵
01月05日 三周四次【Python基礎進階】