Python机器学习编程与实战
上QQ阅读APP看书,第一时间看更新

1.3.2 循环语句

循环语句又称为重复结构,用于反复执行某一操作。Python中主要有两种循环语句,即for语句和while语句,前者采用遍历的形式指定循环范围,后者视判断式返回值的情况决定是否执行语句。要更灵活地操纵循环的流向,就要用到break、continue和pass等语句。

1.for

for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等;也可以遍历任何可迭代对象,如dict。在for语句中,for和in搭配组成for-in循环结构,for-in循环结构可以依次把list或tuple中的每个元素迭代出来。

for语句的基本语法格式如下。

for变量in序列: 
    操作语句 

for语句参数及说明如表1-32所示。

表1-32 for语句常用的参数及说明

程序的执行从“for变量in序列”开始,该语句先把序列中的每个元素代入变量,执行一遍操作语句,重复的次数就是序列中元素的个数。例如,使用for语句依次输出list中的姓名,示例如代码1-3所示。

代码1-3 使用for语句依次输出list中的姓名示例

和条件语句一样,循环语句也可以嵌套,作用同样是丰富程序的功能性。例如,需要设计一个成绩录入系统,就必然要录入姓名和课程这两类信息,仅靠一层循环是无法实现的,这时可使用两层循环结构。理论上,for循环也可以无限嵌套,但并不推荐使用这种方式。

2.while

while语句是Python中最常用的递归结构。区别于for循环,while循环结构包含条件判断式,是一种条件循环,属于当型循环。

while语句最基本的形式包括一个位于顶部的布尔表达式和一个或多个属于while代码块的缩进语句,也可以在结尾处包含一个else代码块,它与while代码块是同级的,组成while-else的形式。while语句的基本语法格式如下。

while条件表达式: 
     操作语句1 
     操作语句2 

while语句参数及说明如表1-33所示。

表1-33 while语句参数及说明

执行while语句时,只要顶部的条件表达式返回真值,就一直执行while部分嵌套的递归代码,当条件表达式返回假值时,不再执行操作语句,程序跳出while循环。

如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,则也是可以的。当while后写入一个非零整数时视为真值,执行循环体;写入0时视为假值,不执行循环体;也可以写入str、list或任何序列,长度非零则视为真值,执行循环体,否则视为假值,不执行循环体。

如果布尔表达式始终返回1,while语句就会变成无限循环。制造无限循环有两种方式,既可以在while后写入一个固定的真值,又可以写入一个一直生成真值的表达式。要终止无限循环,可以按Ctrl+C组合键。

3.break、continue和pass

循环语句中还可以嵌入break、continue和pass语句,以灵活地改变流向,实现更多功能,如表1-34所示。

表1-34 break、continue和pass语句

在for循环中可以使用break、continue和pass语句,示例如代码1-4所示。

代码1-4 在for循环中使用break、continue和pass语句示例

代码1-4中,break语句在第一层循环遍历到3时跳出了循环,continue语句在第二层循环遍历至4时不执行本次循环,pass语句在第二层循环遍历至2时不执行操作,继续本层循环。