for循环在Python中有遍历所有序列的项目,如列表或一个字符串。
语法:
for循环语法如下:
1
2
|
for iterating_var in sequence: statements(s) |
如果一个序列包含一个表达式列表,计算第一个。然后,在序列中的第一项被分配给迭代变量iterating_var。接着,语句块被执行。列表中的每个项目分配给iterating_var,并且statement块被执行,直到整个序列完成(到尾部)。
流程图:
例子:
1
2
3
4
5
6
7
8
9
10
|
#!/usr/bin/python for letter in 'Python' : # First Example print 'Current Letter :' , letter fruits = [ 'banana' , 'apple' , 'mango' ] for fruit in fruits: # Second Example print 'Current fruit :' , fruit print "Good bye!" |
当执行上面的代码,产生以下结果:
1
2
3
4
5
6
7
8
9
10
|
Current Letter : P Current Letter : y Current Letter : t Current Letter : h Current Letter : o Current Letter : n Current fruit : banana Current fruit : apple Current fruit : mango Good bye! |
通过遍历序列索引:
通过每个项目进行迭代的一种替代方法是:通过索引偏移量序列本身。下面是一个简单的例子:
1
2
3
4
5
6
7
|
#!/usr/bin/python fruits = [ 'banana' , 'apple' , 'mango' ] for index in range ( len (fruits)): print 'Current fruit :' , fruits[index] print "Good bye!" |
当执行上面的代码,产生以下结果:
1
2
3
4
|
Current fruit : banana Current fruit : apple Current fruit : mango Good bye! |
在这里,我们采用内置函数len(),它计算元组元素的总数量以及range()内置函数给我们的实际遍历顺序。
循环使用else语句
Python支持与循环语句相关联的else语句。
- 如果else语句与for循环使用,执行else语句时,循环已经迭代完成列表。
- 如果在else语句使用while循环,当条件为假时,else语句被执行。
下面的例子演示了一个else语句,语句搜索素数从10到20的组合。
1
2
3
4
5
6
7
8
9
10
|
#!/usr/bin/python for num in range ( 10 , 20 ): #to iterate between 10 to 20 for i in range ( 2 ,num): #to iterate on the factors of the number if num % i = = 0 : #to determine the first factor j = num / i #to calculate the second factor print '%d equals %d * %d' % (num,i,j) break #to move to the next number, the #first FOR else : # else part of the loop print num, 'is a prime number' |
当执行上面的代码,产生以下结果:
1
2
3
4
5
6
7
8
9
10
|
10 equals 2 * 5 11 is a prime number 12 equals 2 * 6 13 is a prime number 14 equals 2 * 7 15 equals 3 * 5 16 equals 2 * 8 17 is a prime number 18 equals 2 * 9 19 is a prime number |