控制流 / for循环
for..in
是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目。我们会在后面的章节中更加详细地学习序列。
使用for语句
例6.3 使用for语句
#!/usr/bin/python
# Filename: for.pyfor
i
in
range
(
1
,
5
):
print
i
else
:
print
'The for loop is over'
输出
$ python for.py
1
2
3
4
The for loop is over
它如何工作
在这个程序中,我们打印了一个 序列 的数。我们使用内建的range
函数生成这个数的序列。
我们所做的只是提供两个数,range
返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如,range(1,5)
给出序列[1, 2, 3, 4]
。默认地,range
的步长为1。如果我们为range
提供第三个数,那么它将成为步长。例如,range(1,5,2)
给出[1,3]
。记住,range 向上 延伸到第二个数,即它不包含第二个数。
for
循环在这个范围内递归——for i in range(1,5)
等价于for i in [1, 2, 3, 4]
,这就如同把序列中的每个数(或对象)赋值给i,一次一个,然后以每个i
的值执行这个程序块。在这个例子中,我们只是打印i的值。
记住,else
部分是可选的。如果包含else,它总是在for
循环结束后执行一次,除非遇到break语句。
记住,for..in
循环对于任何序列都适用。这里我们使用的是一个由内建range
函数生成的数的列表,但是广义说来我们可以使用任何种类的由任何对象组成的序列!我们会在后面的章节中详细探索这个观点。
给C/C++/Java/C#程序员的注释
Python的for
循环从根本上不同于C/C++的for
循环。C#程序员会注意到Python的for
循环与C#中的foreach
循环十分类似。Java程序员会注意到它与Java 1.5中的for (int i : IntArray)
相似。
在C/C++中,如果你想要写for (int i = 0; i < 5; i++)
,那么用Python,你写成for i in range(0,5)
。你会注意到,Python的for
循环更加简单、明白、不易出错。