8.使用for循環和while循環遍歷文件

Python中有兩種循環,分別爲:for循環和while循環。函數

1. for循環spa

for循環能夠用來遍歷某一對象(遍歷:通俗點說,就是把這個循環中的第一個元素到最後一個元素依次訪問一次)。for循環的基本結構以下:設計

具體看這個案例:code

設計一個函數,在桌面建立10個文本,用數字從1-10依次給它們命名。orm

複製代碼
 1 def text_create():
 2     path = '/Users/duwangdan/Desktop/'
 3     for text_name in range(1,11):
 4         # 1-10的範圍須要用到range函數
 5         with open (path + str(text_name) + '.txt','w') as text:
 6             # with...as的用法正文內會詳細介紹
 7             text.write(str(text_name))
 8             text.close()
 9             print('Done')
10 
11 text_create()
複製代碼

如今咱們來理解下每行代碼。對象

第1行:定義一個text_create函數;blog

第2行:給變量path賦值爲桌面路徑;字符串

第3行:將1-10範圍內的每一個數字依次裝入變量text_name中,每次命名一個文件;it

第5行:打開位於桌面的txt文件,並給每個text執行寫入操做;for循環

第7行:給每一個文件依次命名;

第8行:關閉文件;

第9行:執行完一次命名操做後顯示一個Done;

第11行:調用函數。

案例中提到了「with...as」,在Python中,「with...as」語法是用來代替傳統的「try...finally」的。

好比:打開桌面的test文件,嘗試讀取文件內容,最後關閉文件。

1 file = open('/Users/duwangdan/Desktop/test.txt')
2 try:
3     data = file.read()
4 finally:
5     file.close()

雖然這段代碼執行良好,但比較冗長,換成用「with...as」來表達後,代碼會更爲簡潔。

1 with open('/Users/duwangdan/Desktop/test.txt') as file:
2     data = file.read()

除了上面的單層循環以外,還有一種常見的循環,是嵌套循環

好比用嵌套循環實現九九乘法口訣。

1 for i in range(1,10):
2     for j in range(1,10):
3         print('{} X {} = {}'.format(i,j,i*j))

最外層的循環,依次將1-9的數字儲存在變量i中;變量i每取一次值,內層循環就依次將1-9的數字儲存在變量j中;最後打印出當前的i、j、和i*j的值。

從Python2.6開始,新增了format函數,用來格式化字符串,能夠經過{}.format來實現。在上面這個案例中,將i、j、i*j的值分別存入前面的{ }中,而後作好格式化,統一形式。

2. while循環

for循環和while循環,二者的相同點在於都能循環作一件重複的事情;不一樣點在於,for循環是在序列窮盡時中止,while循環是在條件不成立時中止。

具體,看下面這個例子:

1 count = 0
2 while True:
3     print('重複一遍')
4     count = count + 1
5     if count == 3:
6         break

給變量count賦值爲0,while True就是條件成立,顯示「重複一遍」,此時count被從新賦值爲count+1,若是count等於3時,跳出循環。最後一句的break是跳出最近一層的循環,若是不跳出,程序會無限制循環下去,形成死循環。

若是不想用break來跳出循環,也能夠改變使循環成立的條件。

將上面的例子可轉化爲以下:

1 count = 0
2 while (count < 3):
3     print('重複一遍')
4     count = count + 1
相關文章
相關標籤/搜索