python循环语句for

        python for循环可以遍历任何序列的项目,如一个列表或者一个字符串

        for循环的语法格式如下

1
2
for iterating_var in srquence:
statements(s)

        流程图

        for…in循环是python的两种循环之一,一次把列表或元组中的每个元素迭代出来。

1
2
3
names = ['Mike', 'Tom', 'Tracy']
for name in names:
print name

        执行这段代码,会依次打印name的每一个元素

1
2
3
Mike
Tom
Tracy

        所以for x in ...循环就是把每个元素带入变量x,然后执行缩进块的语句。

        例:比如想计算1-10的整数之和,可以用一个sum变量做累加

1
2
3
4
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print sum

        如果要计算1-100的整数之和,从1写到100有点困难,python提供了一个range()函数,可以生成一个整数序列,比如range(5)生成的序列是从0开始小于5的整数

1
2
>>> range(5)
[0, 1, 2, 3, 4]

        range(101)就可以生成0-100的整数序列,计算如下

1
2
3
4
sum = 0
for x in range(101):
sum = sum + x
print sum

        在python中,for ... else表示这样的意思,for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行。

1
2
3
4
5
6
7
8
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'

        代码输出结果

1
2
3
4
5
6
7
8
9
10
10 等于 2 * 5
11 是一个质数
12 等于 2 * 6
13 是一个质数
14 等于 2 * 7
15 等于 3 * 5
16 等于 2 * 8
17 是一个质数
18 等于 2 * 9
19 是一个质数