本文共 1375 字,大约阅读时间需要 4 分钟。
本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第1章,第1.10节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。
最常用的循环结构是for语句,它可以用来对容器成员进行迭代操作。迭代是Python中内涵最丰富的功能之一。但最常见的迭代形式是简单循环访问一个序列(如字符串、列表或元组)的所有成员,例如:
for n in [1,2,3,4,5,6,7,8,9]: print "2 to the %d power is %d" % (n, 2**n)
在这个例子中,每次迭代都会将列表[1,2,3,4,...,9]中的下一个值赋给变量n。因为在整数范围内执行循环十分常见,为此经常会使用下面的快捷方法:
for n in range(1,10): print "2 to the %d power is %d" % (n, 2**n)
range(i, j, [,步长])函数创建的对象表示值在i到j-1之间的整数范围。如果起始值i被省略,则认为是0。第三个参数是可选的步长值。例如:
a = range(5) # a = 0,1,2,3,4b = range(1,8) # b = 1,2,3,4,5,6,7c = range(0,14,3) # c = 0,3,6,9,12d = range(8,1,-1) # d = 8,7,6,5,4,3,2
在使用range()函数时请注意,在Python 2中,它创建的值是已经用整数值完全填满的列表。当范围非常大时,这可能会在不经意间耗掉所有可用内存。因此,在老式的Python代码中,可能会看到程序员使用另一个函数xrange()。例如:
for i in xrange(100000000): # i = 0,1,2,...,99999999 statements
进行查找时,xrange()函数创建的对象会在收到查询请求时根据需要计算它所表示的值。因此,它成为了表示极大范围整数值的首选方式。在Python 3中,xrange()函数已经更名为range(),并且已删除了老式range()函数的功能。
for语句并不仅限于处理整数序列,还可用于迭代多种对象,包括字符串、列表、字典和文件,例如:
a = "Hello World" # 打印出a中的每个字符for c in a: print cb = ["Dave","Mark","Ann","Phil"]# 打印出一个列表的成员for name in b: print namec = { 'GOOG' : 490.10, 'IBM' : 91.50, 'AAPL' : 123.15 }# 打印出一个字典的所有成员for key in c: print key, c[key]# 打印一个文件中的所有行f = open("foo.txt")for line in f: print line,
for循环是Python最强大的语言特性之一,因为你可以创建自定义的迭代器对象和生成器函数,为它提供值序列。本章稍后和第6章将会讲述有关迭代器和生成器的更多内容。
转载地址:http://ypxax.baihongyu.com/