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