文章目录
第四章 程序的控制结构
4.1 程序的三种控制结构
4.1.1 程序流程图
程序流程图是一种表达程序控制结构的方式,主要用于关键部分的程序分析和过程描述,由一系列图形、流程线和文字说明等组成。
流程图包括7中基本元素:
各基本元素的含义如下:
- 起止框:表示程序逻辑的开始或结束
- 判断框:表示一个判断条件,并根据判断结果选择不同的执行路径
- 处理框:表示一组处理过程,对应于顺序执行的程序逻辑
- 输入/输出框:表示程序中的数据输入或结果输出
- 注释框:表示程序的注释
- 流向线:表示程序的控制流,以带箭头直线或曲线表达程序的执行路径
- 连接点:表示多个流程图的连接方式,常用于将多个较小流程图组织成较大流程图
4.1.2 程序控制结构基础
程序由3中基本结构组成:顺序结构、分支结构和循环结构。任何程序都由这3种基本结构组合而成。
顺序结构是程序按照先行顺序依次执行的一种运行方式。
分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行时方式。最基础的分支结构是二分支结构。二分支结构会组合形成多分支结构。
循环结构是程序根据条件判断结果向后执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构。
4.1.3 程序控制结构扩展
在三种基本控制逻辑基础上,Python语言进行了必要且适当的扩展。
在分支结构原理的基础上,Python增加了异常处理,使用try-except保留字。
异常处理以程序异常为判断条件,根据一段代码执行的正确性进行程序逻辑选择。异常处理是分支结构的一种扩展。
在循环结构原理的基础上,Python提供两个循环控制符break和continue,对循环的执行过程进行控制。break控制符用来结束当前循环。continue控制符用来结束当前循环的当次循环过程。
4.2 程序的多分支结构
4.2.1 单分支结构:if
Python的单分支结构使用if保留字对条件进行判断,语法格式如下:
if <条件>: 语句块
其中,if、:和<语句块>前的缩进都是语法的一部分。<语句块>是if条件满足后执行的一个或多个语句系列,缩进表达<语句块>与if的包含关系。<条件>是一个产生True或False结果的语句,当结果 为True时,执行<语句块>,否则跳过<语句块>。<条件>是一个或多个条件,多个条件见采用and或or进行逻辑组合。and表示多个条件“与”的关系,or表示多个条件“或”的关系。
4.2.2 二分支结构:if-else
Python的二分之结构使用if-else保留字对条件进行判断,语法格式如下:
if <条件>: <语句块1> else: <语句块2>
<语句块1>在if中<条件>满足即为True时执行,<语句块2>在if中<条件>不满足即为False时执行。简单说,二分之结构根据条件的True或False结构产生两条路径。
二分之结构还有一种更简洁的表达式,适合<语句块1>和<语句块2>都只包含简单表达式的清空,语法格式如下:
<表达式1> if <条件> else <表达式2>
4.2.3 多分支结构:if-elif-else
Python的多分枝结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结构按照顺序选择执行路径,语法格式如下:
if <条件1>: <语句块1> elif <条件2>: <语句块2> ... else: <语句块N>
多分枝结构通常用于判断同一个条件或一类条件的多个执行路径。要注意,Python会按照多分支结构的代码顺序依次评估判断条件,寻找并执行第一个结果为True条件对应的语句块,当前语句块执行后跳过整个if-elif-else结构。如果没有任何条件成立,else下面的语句块被执行。else子句是可选的。
利用多分支结构编写代码时要注意多个逻辑条件的先后关系。
4.2.4 判断条件及组合
1、Python的关系操作符
分支结构中的判断条件可以使用任何能够产生True或False的语句或函数。形成判断条件最常见的方式是采用关系操作符。
操作符 | 操作符含义 |
---|---|
< | 小于 |
<= | 小于等于 |
>= | 大于等于 |
> | 大于 |
== | 等于 |
!= | 不等于 |
2、保留字
Python语言使用保留字not、and和or对条件进行逻辑运算或组合。
保留字not表示单个条件的“否”关系,and表示多个条件之间的“与”关系,or表示多个条件之间的“或”关系。
4.3 程序的循环结构
Python语言的循环结构包括两种:遍历循环和无限循环。
遍历循环使用保留字for依次提取遍历结构各元素进行处理。
无限循环使用保留字while根据判断条件执行程序。
4.3.1 遍历循环:for
遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。语法格式如下:
for <循环遍历> in <遍历结构>: <语句块>
遍历结果可以是字符串、文件、range()函数或组合数据类型等。
遍历循环还有一种扩展模式,语法格式如下:
for <循环变量> in <遍历结构>: <语句块1>