【百度AI Studio】Python小白逆襲大神-Day1
阿新 • • 發佈:2021-01-11
主要內容:
- 連續輸出和換行輸出問題、輸出對齊問題: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簡單。