6.for语句
Python提供给我们的另一个循环机制就是for语句. 它提供了Python中最强大的循环结构.它可以遍历序列成员, 可以用在列表解析和生成器表达式中,它会自动地调用迭代器的next()方法,捕获StopIteration异常并结束循环(所有这一切都是在内部发生的).和传统语言中的for语句不同, Python的for更像是 shell 或是脚本语言中的foreach循环.
for循环会访问一个可迭代对象(例如序列或是迭代器)中的所有元素, 并在所有条目都处理过后结束循环.它的语法如下:
for iter_var in iterable:
suite_to_repeat
1.用于序列类型
>>> for c in 'names':
print 'current letter: ', c
current letter: n
current letter: a
current letter: m
current letter: e
current letter: s
迭代序列有三种基本方法:
1.通过序列项迭代:
>>> namelists = ['henry', 'john', 'steven']
>>> for eachName in namelists:
print eachName, 'Lim'
henry Lim
john Lim
steven Lim
2.通过序列索引迭代:
>>> namelists = ['henry', 'john', 'steven']
>>> for nameindex in range(len(namelists)):
print 'Liu, ', namelists[nameindex]
Liu, henry
Liu, john
Liu, steven
3.使用项和索引迭代:
两全其美的办法是使用内建的 enumerate() 函数, 它是 Python 2.3 的新增内容.
>>> namelists = ['henry', 'john', 'steven']
>>> for i, eachLee in enumerate(namelists):
print "%d %s Lee" % (i+1, eachLee)
1 henry Lee
2 john Lee
3 steven Lee
2.用于迭代器类型
迭代器对象有一个 next() 方法,调用后返回下一个条目. 所有条目迭代完后, 迭代器引发一个 StopIteration 异常告诉程序循环结束. for 语句在内部调用 next() 并捕获异常.
3.range()内建函数
内建函数 range() 可以把类似 foreach 的 for 循环变成你更加熟悉的语句
Python 提供了两种不同的方法来调用range().完整语法要求提供两个或三个整数参数:
range(start, end, step =1)
range() 会返回一个包含所有k的列表,这里start <= k < end ,从start到end, k每次递增step. step不可以为零,否则将发生错误.
>>> range(2, 19, 3)
[2, 5, 8, 11, 14, 17]
如果只给定两个参数,而省略step,step就使用默认值1.
>>> range(3, 7)
[3, 4, 5, 6]
range() 还有两种简略的语法格式:










