## 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)
```