## for循環簡介
for循環可以用來遍歷某一對象(遍歷:通俗點說,就是把這個循環中的第一個元素到最后一個元素依次訪問一次)。for循環的基本結構如下:

說明:
* for是關鍵詞,而后面緊接著的是一個可以容納“每一個元素”的變量名稱,至于變量起什么名字自己定,但切記不要和關鍵詞重名。
* 在關鍵詞in后面所對應的一定是具有“可迭代的”(iterable)或者說是像列表那樣的集合形態的對象,即可以連續地提供其中的每一個元素的對象。
具體看這個案例:
設計一個函數,在桌面創建10個文本,用數字從1-10依次給它們命名。
```
def text_create():
path = 'C:/Users/zwpos/Desktop/'
for text_name in range(1,11):
# 1-10的范圍需要用到range函數
with open (path + str(text_name) + '.txt','w') as text:
# with...as的用法正文內會詳細介紹
text.write(str(text_name))
text.close()
print('Done')
text_create()
```
現在我們來理解下每行代碼。
* 第1行:定義一個text\_create函數;
* 第2行:給變量path賦值為桌面路徑;
* 第3行:將1-10范圍內的每個數字依次裝入變量text\_name中,每次命名一個文件;
* 第5行:打開位于桌面的txt文件,并給每一個text執行寫入操作;
* 第7行:給每個文件寫入內容;
* 第8行:關閉文件;
* 第9行:執行完一次命名操作后顯示一個Done;
* 第11行:調用函數。
案例中提到了“with...as”,在Python中,“with...as”語法是用來代替傳統的“try...finally”的。比如:打開桌面的test文件,嘗試讀取文件內容,最后關閉文件。
### for-in循環
如果明確的知道循環執行的次數或者要對一個容器進行迭代(后面會講到),那么我們推薦使用`for-in`循環,例如下面代碼中計算1~100求和的結果($\\displaystyle \\sum \\limits\_{n=1}^{100}n$)。
```Python
"""
用for循環實現1~100求和
Version: 0.1
Author: 駱昊
"""
sum = 0
for x in range(101):
sum += x
print(sum)
```
需要說明的是上面代碼中的`range`類型,`range`可以用來產生一個不變的數值序列,而且這個序列通常都是用在循環中的,例如:
* `range(101)`可以產生一個0到100的整數序列。
* `range(1, 100)`可以產生一個1到99的整數序列。
* `range(1, 100, 2)`可以產生一個1到99的奇數序列,其中的2是步長,即數值序列的增量。
知道了這一點,我們可以用下面的代碼來實現1~100之間的偶數求和。
```Python
"""
用for循環實現1~100之間的偶數求和
Version: 0.1
Author: 駱昊
"""
sum = 0
for x in range(2, 101, 2):
sum += x
print(sum)
```
也可以通過在循環中使用分支結構的方式來實現相同的功能,代碼如下所示。
```Python
"""
用for循環實現1~100之間的偶數求和
Version: 0.1
Author: 駱昊
"""
sum = 0
for x in range(1, 101):
if x % 2 == 0:
sum += x
print(sum)
```