首页 > Python笔记 阅读数:23

Python for循环详解

在有些情况下,我们还会重复做一件有规律的事情。比如,我们想逐个输出列表中的元素,然后再据此做一些事情,这时我们就需要利用循环结构。循环结构的特点是,在给定条件成立时,反复执行同一个程序段。

通常,我们称给定条件为“循环条件”,称反复执行的程序段为“循环体”。循环体可以是复合语句,也可以是单个语句。循环体中也可以包含循环语句,实现循环的嵌套。循环结构的流程如图 1 所示。

循环结构
图 1:循环结构

循环结构包括 for 循环和 while 循环,还可以使用嵌套循环完成复杂的程序控制操作。本节教程我们先来介绍 for 循环。

我们可利用 for 循环依次把列表或元组中的每个元素迭代取出,并做相应的操作。示例代码如下:
In [1]: list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]   #定义一个列表
In [2]: for mylist in lis:                        #利用for循环逐个取出并乘以2
   ...: temp = mylist * 2
   ...: print(temp)
2
4
……(省略部分输出)
18
20

这里简单介绍一下在 Python 中利用 for 循环处理任意大小列表的方式,具体的使用细节如图 2 所示(图中的缩进可以是一个 Tab 键,也可以是四个空格,只要保证缩进的尺度相同即可)。

用for循环处理列表
图 2:用 for 循环处理列表

这里的关键词“in”等同于把列表中的每个元素逐个取出,并赋值给目标识别符所代表的变量。事实上,“for…in”循环可以作用于任何可迭代的序列,而不仅仅适用于列表,代码如下所示:
In [3]: sum = 0
    ...: for x in range (101):
    ...: sum = sum + x
    ...: print(sum)
    ...:
5050

在上述代码中,控制 for 循环次数的是内置函数 range( ),该函数可创建一个整数列表,一般用在 for 循环中。该函数的原型如下:

range(start, stop[, step])

该函数的参数说明如下:
在 Python 的 for 循环中,我们还可以同时提取多个变量来完成给定的操作。下面的示例就用到了前面提到的内置函数 enumerate(),参见图 3 中的代码。

多变量的for循环
图 3:多变量的 for 循环

在图 3 的 In [5] 处,我们利用 enumerate( ) 函数将一个列表打包成了一个个元组对(索引值,元素值),每个元组中有两个值,如 (0, a)、(1, b) 等。于是,我们需要两个变量分别来接收这两个值,代码中用到的是 index 和 key,它们分工明确,靠前的 index 接收 enumerate( ) 给出的索引值,靠后的 key 接收原有列表的字符。

这里还涉及另外一个语法点,即 for 循环内部的 print 打印格式。在 Python 中,格式化输出字符串时通常使用字符串类提供的 format( ) 方法。

如前所述,在 Python 中,一切皆对象。所以,在 print 语句中,严格来说,"seq [{0}] = {1}" 是一个字符串对象。既然是对象,那么我们就可以通过点.操作符访问它的成员方法,这里的方法就是 format( )。关于 format( ) 方法的使用,之前已有讨论,这里不再赘述。

相关文章