
6.1 for循环语句

↑扫码看视频
在本节中,将详细讲解在Python程序中使用for循环语句的知识。
6.1.1 基本的for循环语句
绝大多数的循环结构都是用for语句来完成的。在Java等其他高级语言中,for循环语句需要用循环控制变量来控制循环。而在Python语言的for循环语句中,则是通过循环遍历某一序列对象(如元组、列表、字典等)的方式构建循环,循环结束的标志是序列对象被遍历完成。
使用for循环语句的语法格式如下所示。

上述for循环语句的含义是遍历for语句中的各个对象,每经过一次循环,循环变量就会得到遍历对象中的一个值。一般情况下,当对象被全部遍历完成时会自动退出循环。上述格式中各参数的具体说明如下。
● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements:表示执行语句。

实例文件for.py的具体实现代码如下所示。

执行后输出的结果如下。

6.1.2 通过遍历方式实现循环
在Python语言中,还可以通过遍历的方式实现循环功能,此时需要借助Python内置函数range()来实现。因为在Python的for循环语句中,对象集合可以是列表、字典以及元组等,所以可以通过函数range()产生一个整数列表,这样可以完成计数循环功能。
使用函数range()的语法格式如下所示。

● start:可选参数,起始数,默认值为0。
● stop:终止数,如果range只有一个参数x,那么range产生一个从0至x-l的整数列表。
● step:可选参数,表示步长,即每次循环序列增加值。
注意:产生的整数序列的最大值为stop-1。

实例文件diedai.py的具体实现代码如下所示。

执行后输出的结果如下所示。

6.1.3 for…else循环语句
使用for…else循环语句的语法格式如下所示。

● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量。
● statements2:else语句中的执行代码,只有在循环正常退出(遍历完所有遍历对象中的值)后执行。
在使用for…else语句时,for里面的语句和普通的for循环没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行。

实例文件else.py的具体实现代码如下所示。


执行后输出的结果如下所示。

6.1.4 嵌套for循环语句
使用嵌套for循环语句的语法格式如下所示。

● iterating_var:表示循环变量。
● sequence:表示遍历对象,通常是元组、列表和字典等。
● statements1:表示for语句中的循环体,它的执行次数就是遍历对象中值的数量。
● statements2:else语句中的statements2,只有在循环正常退出(遍历完所有遍历对象中的值)时执行。

实例文件qiantao.py的具体实现代码如下所示。

在上述代码中,首先使用输入函数获取用户指定序列的开始值和结束值,然后使用for语句构建了两层嵌套的循环语句获取素数并输出结果。使用外循环语句生成要判定素数的序列,使用内循环生成测试的因子。并且使用else子句的缩进来表示它属于内嵌的for循环语句,如果多缩进一个单位,则表示属于其中的if语句;如果少缩进一个单位,则表示属于外层的for循环语句。因此,Python中的缩进是整个程序的重要构成部分。执行后将提示用户输入两个整数作为范围,例如分别输入“1”和“10”后输出的结果如下所示。
