1. 程式人生 > 其它 >【百度AI Studio】Python小白逆襲大神-Day1

【百度AI Studio】Python小白逆襲大神-Day1

技術標籤:# pythonpython學習python

主要內容:

  • 連續輸出和換行輸出問題、輸出對齊問題:print()中的end引數值
  • 檔案(子)目錄讀取、路徑輸出問題:os.path()、os.listdir()、os.chdir()函式的簡單介紹

作業一:輸出9*9乘法口訣表(注意格式如下)

示例輸出:在這裡插入圖片描述

【程式碼】:

def table():
    #在這裡寫下您的乘法口訣表程式碼吧!
    for i in range(1,10):
        for j in range(1,i+1):
            print(j,'*',i,'=',j*i,end=
"\t") print("") if __name__ == '__main__': table()

【輸出結果】:

1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81

要點1: print()函式end引數調整
python中print()函式預設以換行符\n結尾,因此兩個print()函式預設會列印兩行,可以通過調整引數end來改變結尾符號。如print(end=''),則會連續列印;print(end=' '),則會用空格連線兩次列印輸出;print(end='\t'),則會以製表符連線兩次列印輸出。

在本例中,因為每部分長度不盡相同,因此用製表符確保每部分的第一個字元都能對齊。相當於Tab鍵的作用。


作業二:查詢特定名稱檔案

遍歷”Day1-homework”目錄下檔案;找到檔名包含“2020”的檔案;將檔名儲存到陣列result中;按照序號、檔名(有路徑)分行列印輸出,形式如下:

在這裡插入圖片描述
注:Day1-homework目錄下有4個資料夾,每個資料夾下既有子資料夾也有檔案。

【程式碼】:

#匯入OS模組
import os
#待搜尋的目錄路徑
path = "Day1-homework"
#待搜尋的名稱
filename = "2020"
#定義儲存結果的陣列
result = []

def findfiles():
    #在這裡寫下您的查詢檔案程式碼吧!
    for dirpath, dirs, files in os.walk(path):
        for name in files:
            if filename in name:
                result.append(os.path.join(dirpath,name))
    for i in result:
        print([result.index(i),i])

if __name__ == '__main__':
    findfiles()

【輸出結果】:

[0, 'Day1-homework/26/26/new2020.txt']
[1, 'Day1-homework/4/22/04:22:2020.txt']
[2, 'Day1-homework/18/182020.doc']

要點2:用os.walk(path)遍歷(子)檔案(夾):

for dirpath, dirs, files in os.walk(path):

遍歷的每個物件包含三部分元素:
dirpath是檔案(夾)所在的路徑
dirs是這一路徑下所有資料夾組成的列表
files是這一路徑下的所有檔案組成的列表

要點3:用os.path.join(path, name)連線路徑和檔名

要點4:字串匹配可以直接用in來判斷:
if pattern in string:
當然,也可以用re.search(pattern, string)或re.match(pattern, string)等正則表示式函式來實現,但顯然不如直接用in簡單。