1. 程式人生 > >01月05日 三周四次【Python基礎進階】

01月05日 三周四次【Python基礎進階】

是個 快速 files 函數 true 結果 lis pre 序列

1.8 遞歸列出目錄裏的文件
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

習題

  1. 從終端接收若幹個數字,要求使用filter()函數,將輸入的不是數字的值剔除掉(用戶輸入的內容有隨機性,當我們要接收一個數字的時候,他可能會輸入一個字符串過來,要求當用戶輸入的不是數字,就剔除掉)


  1. 從終端接收若幹個以空格隔開的字符串,然後去除所有的26個字符之外的字符後,打印到屏幕上
    要求:使用map()函數,map()函數接收兩個參數,一個是函數,一個是Iterable,map將傳入的函數依次作用到序列的每個元素,並把結果作為新的Iterator返回。


  1. 從終端接收若幹個以空格隔開的字符串
    (1).以空格隔開的字符串為用戶想要輸入的一個值
    (2).用戶在輸入時不小心按出來了字母鍵


01月05日 三周四次【Python基礎進階】