购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 Python中的控制流

在 Python 中程序代码总是按照一定顺序执行的,如果想改变代码的执行顺序,比如我们有时需要从上到下按顺序执行,有时需要跳转执行,有时需要选择不同的分支执行,有时甚至需要循环地执行,这时就要用到控制流。我们通常根据不同的需要来选择控制语句,以控制某些代码段的执行方式,这些不同功能的控制语句就叫作控制流。

2.4.1 控制流的功能

控制流的功能就是控制代码的执行方式,下面通过两种方式来实现同一功能。方式一:

方式二:

例如,若要实现一个分支判断功能:如果天气晴朗(sunny),就输出“basketball”,否则,输出“badminton”。按照正常的顺序执行方式,是无法实现该功能的,此时就可以选择使用if语句,我们会在后面详细介绍具体的使用方法:

2.4.2 Python的三种控制流

与许多编程语言相同,在 Python 中程序通常是由上向下执行的,而有时我们为了改变程序的执行顺序,会使用控制流语句控制程序的执行方式。

在 Python 中有三种控制流类型:第 1 种是顺序结构,指按顺序执行的结构;第 2 种是分支结构,指选择执行的结构,常用的语句为if;第3种是循环结构,指循环多次执行的结构,常用的语句为for、while。下面分别通过代码实例认识这三种结构。

顺序结构的代码实例如下:

分支结构的代码实例如下:

循环结构for的代码实例如下:

循环结构while的代码实例如下:

2.4.3 认识分支结构if

if语句在Python中表示选择性地执行,虽然形式简单,但功能相当强大。选择性执行是常规程序设计中的主要控制机制之一,是计算机能够执行复杂任务的关键组成部分。

if语句的格式用法如下:

按照上面的格式规定,我们通过实例来讲解if语句在几种选择情况下的使用:

注意,由于同时满足了条件a==10、a>8与a>6,所以Python会优先执行最先满足的条件下的代码。

if语句的使用要点如下。

◎ 各分支尽量不重复,并且尽量包含全部可能性。

◎ 在if语句里还可以再写if语句,形成if语句的嵌套。

◎ elif语句和else语句永远只是可选的。

◎ 在Python中没有switch语句。

2.4.4 认识循环结构for…in

Python 中的 for…in 语句是指在一系列的对象上进行迭代,即逐一使用序列中的每个项目。

for…in语句的格式用法如下:

根据上面对for…in语句的格式规定,我们通过实例来讲解for…in语句的使用方法。

最基本的for语句为搭配列表使用:

在for语句中使用range函数时,range函数中的第1个元素代表起始数字,第2个元素代表终止数字,第3个元素代表步长,如果不指定第3个元素,则默认步长为1:

在Python中,for…in语句经常与“迭代器”组合使用,“迭代器”指任何可以进行迭代操作的对象,比如在前面提到的列表、字符串、元组、字典、文件,等等。

for...in语句的使用要点如下。

◎ 适当运用range、xrange函数。

◎ 在for中还可以再写for,形成循环嵌套。

◎ 合理地运用lambda代替for循环,可以提高运行速度。

2.4.5 认识循环结构while

在Python中while语句也可以用来控制一段语句的重复执行,即在某个条件下循环执行某段程序,以处理需要重复处理的相同任务。

while语句的格式用法如下:

下面根据while语句的格式规定,通过实例讲解while语句的使用方法。

如下所示是最简单的没有else部分的例子,这是一个死循环,请不要轻易尝试:

接下来是有else部分的例子:

我们再来看看更复杂一些的有嵌套的while语句:

while语句的使用要点如下。

◎ 配合if分支语句使用。

◎ 要恰当地运用break和continue语句,以便适时结束循环;

◎ 在while语句中还可以再写while语句,从而形成循环嵌套。

2.4.6 break语句与continue语句

在Python中用于终止循环的语句有break语句和continue语句,这两种语句跳出循环的层次不同,但各有用处。

1.break语句

break语句是用来终止程序的执行的。当在循环结构中出现break语句时,即使在循环条件中没有false条件,或者序列还没被完全递归完,也会终止循环语句。如果break语句出现在嵌套循环中,则应当终止执行最深层的循环,并开始执行下一行代码。

break语句在while循环中的示例如下:

break语句在for循环中的示例如下:

将break语句用在双层循环语句中,跳出最内层的循环的示例如下:

2.continue语句

continue 语句的功能是强制停止循环中的这一次执行,直接跳到下一次执行。即跳过当前循环的剩余语句,继续进行下一轮循环。

continue语句在while循环中的示例如下:

输出结果全部为奇数,因为当n为偶数时跳出本次循环。continue语句在for循环中的示例如下:

输出结果同样全为奇数,因为当n为偶数时跳出本次循环。continue语句在双层循环语句中的示例如下:

3.continue语句与break语句的区别

continue 语句指的是结束执行本次循环中剩余的语句,然后继续下一轮的循环;而break语句指的是直接结束这个循环,包括结束执行该循环的剩余的所有次循环。

请区分以下两个程序。

程序1如下:

程序2如下:

在程序 2 中,i=15 及之后均没有输出,因为执行遇到 break,直接跳过了剩余的所有循环,而程序1仅跳过了i=15这一次循环。 e8zxmkY6NTRc3fmYpOq5Q82XGA6Zh5va+KcxcOo7zflBZ9wr2J6AGgQWpRjKy0UB

点击中间区域
呼出菜单
上一章
目录
下一章
×