# for循环

**URL:** <https://www.soundengine.cn/t/for/176>\
**Category:** 编程\
**Created:** [2019 年3 月 19 日 02:41 UTC](https://www.soundengine.cn/t/for/176 "2019-03-19T02:41:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![codeman](https://www.soundengine.cn/letter_avatar_proxy/v4/letter/c/b4bc9f/32.png) [@codeman](https://www.soundengine.cn/u/codeman)\
发布日期： [2019 年3 月 19 日 02:41 UTC](https://www.soundengine.cn/t/for/176/1 "2019-03-19T02:41:49Z")

</div>

**for…in…循环语句**

```auto
for i in [1,2,3,4,5]:
   print(i)

```

终端上将依次出现列表里的所有数字

分析

```auto
for i in [1,2,3,4,5]: #i是“空房间”
   print(i)

```

空房间的学名叫【元素】（item），你可以把它当成是一个变量。那么首先，我们需要给房间取一个名字，也就是“变量名”。变量名i不是必须，可以改为其他名字：

```auto
for i in [1,2]:
    print(i)

for number in [1,2]:
    print(number)

for LOVE in [1,2]:
    print(LOVE)

```

**for循环：一群排队办业务的人**

以列表的形式出现：[1,2,3,4,5]

同时，字典、字符串也是

```auto
dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}

for i in dict:
    print(i)

```

我们用print(i)把“空房间”i打印了出来，发现i会逐个接待字典中的每一个【键】

字符串也属于“一群排队办业务的人”：

```auto
for i in '吴宗宪':
    print(i)

```

而整数、浮点数是不属于“一群排队办业务的人”的，如果把它们放在for循环里，代码会报错。

* * *

现在我们理解了：列表，字典，字符串都可以是“一群排队办业务的人”。

```auto
for i in [1,2,3,4,5]:  
   print(i)

```

还是这段代码，代码的运行结果你应该已经了然于心，是1,2,3,4,5依次出现。也就是说，当这一群排队的人依次序走进空房间，每个人都会把业务办完。

这个过程，在Python中的学名就叫做【遍历】。

除了列表，字典，字符串三种数据类型，我们还可以遍历其他的数据集合。比如和for循环常常一起搭配使用的：range() 函数。

**range()函数**

```auto
for i in range(3):
    print(i)

```

运行后，你看到了整数0，1，2，是不是？使用range(x)函数，就可以生成一个从0到x-1的整数序列。

它还有更多用法，再来看这段代码：

```auto
for i in range(13,17):
    print(i)

```

使用range(a,b) 函数，你可以生成了一个【取头不取尾】的整数序列。

再或者：

```auto
for i in range(3):
    print('我很棒')

```

像这样，有了range()函数之后，当你想把一段代码固定重复n次时，就可以直接使用for i in range(n)解决问题。

组合练习：

```auto
for i in range(11):
    print('在这里写'+str(i)+'个音符')

```

range()函数还有一种用法：

```auto
for i in range(0,10,3):
    print(i)

```

这里range(0,10,3)的意思是：从0数到9（取头不取尾），数数的间隔为3。

解释：  
range(a,b,c)  
a 计数从a开始，不填时默认从0开始  
b 计数到b结束，但不包括b  
c 计数的间隔，不填时默认为1

示例：

**用for循环完成1到100的整数分别乘以5的计算，并打印出来**

```auto
for i in range(1,101):
    print(i*5)

```

**for循环：办事流程（接上面代码）**

在这里流程很简单，都是print(i\*5)。然后在i=1的情况下，执行一遍流程；在i=2的情况下，再执行一遍流程……一直执行到i=5，也就把这群人的事情全部办完了：

“办事流程”的学名是【for子句】。格式是【冒号】后另起一行，【缩进】写命令。

举栗，采购大作战：

```auto
d = {'小明':'主板','小红':'CPU','小白':'内存','小张':'风扇'}

for i in d:
    print(d[i])

```

### 以上为for循环内容

* * *
