Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
流程图:
例:
for letter in 'Python':
print '当前字母 :', letter
输出:
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : h
当前字母 : o
当前字母 : n
另外一种执行循环的遍历方式是通过索引,如下实例:
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print '当前水果 :', fruit
for index in range(len(fruits)): #索引
print '当前水果 :', fruits[index]
输出:
当前水果 : banana
当前水果 : apple
当前水果 : mango
当前水果 : banana
当前水果 : apple
当前水果 : mango
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
例如:
for num in range(2,20): # 迭代 2到 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,'是一个质数'
输出:
2 是一个质数
3 是一个质数
4 = 2 * 2
5 是一个质数
6 = 2 * 3
7 是一个质数
8 = 2 * 4
9 = 3 * 3
10 = 2 * 5
11 是一个质数
12 = 2 * 6
13 是一个质数
14 = 2 * 7
15 = 3 * 5
16 = 2 * 8
17 是一个质数
18 = 2 * 9
19 是一个质数
空三角形
rows = input('输入行数:')
for i in range(rows):
for k in range(2 * rows - 1):
if (i != rows - 1) and (k == rows - i - 1 or k == rows + i - 1):
print " * ",
elif i == rows - 1:
if k % 2 == 0:
print " * ",
else:
print " ",
else:
print " ",
print"\n"
输出:
输入行数:5
*
* *
* *
* *
* * * * *
九九乘法表(左下角)
for i in range(1,10):
for j in range(1,i+1):
print '%d*%d=%d '%(j,i,i*j),
print '\n'
输出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
左上角
for i in range(9,0,-1):
for j in range(1,i+1):
print '%d*%d=%d '%(j,i,i*j),
print '\n'
输出:
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*4=4 2*4=8 3*4=12 4*4=16
1*3=3 2*3=6 3*3=9
1*2=2 2*2=4
1*1=1