1、第4章 程序控制结构第1页程序基本结构第2页程序流程图用一系列图形、流程线和文字说明描述程序基本操作和控制流程,它是程序分析和过程描述最基本方式程序流程图第3页起止框表示一个程序开始和结束;判断框判断一个条件是否成立,依据判断结果选择不一样执行路径处理框表示一组处理过程;输入输出框表示数据输入或结果输出;程序流程图第4页注释框增加程序解释;流向线以带箭头直线或曲线形式指示程序执行路径;连接点将多个流程图连接到一起,惯用于将一个较大流程图分割为若干部分。程序流程图第5页程序流程图第6页次序结构是程序按照线性次序依次执行一个运行方式,如图4.3所表示,其中S1和S2表示一个或一组次序执行语句。程序
2、基本结构第7页分支结构是程序依据条件判断结果而选择不一样向前执行路径一个运行方式。由二分支结构会组合形成多分支结构。程序基本结构第8页循环结构是程序依据条件判断结果向后重复执行一个运行方式,根据循环体触发条件不一样,循环结构包含条件循环和遍历循环结构。程序基本结构第9页对于一个计算问题,能够用IPO描述、流程图描述或者直接以Python代码方式描述。本书仅对这几个描述进行介绍,功效简单问题提议大家直接编写Python代码,功效复杂问题读者能够采取IPO描述或流程图描述为伎俩。下面给出3个微实例,经过不一样描述方法详细解释程序三种基本结构。程序基本结构实例第10页依据圆半径计算圆面积和周长。图4
3、.6分别给出了该问题IPO描述、流程图描述和Python代码描述。微实例4.1:圆面积和周长计算。输入输入:圆半径R处理处理:圆面积:S=*R*R圆周长:L=2*R输出输出:圆面积S、周长L第11页程序描述方式主要有三类,分别是自然语言、流程图和伪代码。自然语言描述方式指使用人类语言直接描述程序,IPO描述是这类一个。优点是灵活自然,缺点是比较繁琐,轻易出现二义性,一个描述能够产生各种不一样程序代码。流程图描述是程序最直观易懂表示方式,主要适合用于较短算法。优点是直观、清楚且逻辑确定,缺点是流程图绘制比较繁琐,当程序较大时流程图会很复杂,反而降低了表示清楚性。程序基本结构实例第12页伪代码描述
4、是介于自然语言与编程语言之间一个算法描述语言。使用伪代码不用拘泥于详细编程语言,对整个算法运行过程描述最靠近自然语言。与直接自然语言描述不一样,伪代码在保持程序结构情况下描述算法程序基本结构实例第13页计算用户给定实数绝对值。图4.7分别给出了该计算问题IPO描述、流程图描述和Python代码描述。微实例4.2:实数绝对值计算第14页微实例4.3:整数累加。输入:正整数R处理:S=1+2+3+R输出:输出S计算1到正整数R算术和。图4.8分别给出了该计算问题IPO描述、流程图描述和Python代码描述。第15页IPO描述、流程图描述和Python代码描述是处理计算问题三种描述方式,细致程度逐步
5、递进。IPO描述主要用于区分程序输入输出关系,重点在于结构划分,主要采取自然语言描述。流程图描述侧重于描述算法详细流程关系,流程图结构化关系相比自然语言描述更深入,有利于阐述算法详细操作过程。Python代码描述是最终程序产出,最为细致。程序基本结构实例第16页程序分支结构第17页Python中if语句语法格式以下:if :是if条件满足后执行一个或多个语句序列,中语句经过与if所在行形成缩进表示包含关系。单分支结构:if语句第18页If语句首先评定结果值,假如结果为True,则执行里语句序列,然后控制转向程序下一条语句。假如结果为False,里语句会被跳过。if语句控制过程如图4.9所表示单
6、分支结构:if语句第19页if语句中执行是否依赖于条件判断。但不论什么情况,控制都会转到if语句后与该语句同级别下一条语句。if语句中部分能够使用任何能够产生True或False语句或函数。形成判断条件最常见方式是采取关系操作符。单分支结构:if语句第20页Python语言共有6个关系操作符,见表4.1所表示。单分支结构:if语句操作符数学符号操作符含义小于=大于等于大于=等于!=不等于第21页一个简化版空气质量标准采取三级模式:0-35为优,35-75为良,75以上为污染。人们可能不关心PM2.5指数值详细为多少,更关心空气质量到底怎样。计算机能够经过PM2.5指数分级公布空气质量提醒。微实
7、例4.4:PM 2.5空气质量提醒(1)第22页该问题IPO描述以下:输入:接收外部输入PM2.5值处理:if PM2.5值=75,打印空气污染警告if 35=PM2.5值 75,打印空气污染警告if PM2.5值 35,打印空气质量优,提议户外运动输出:打印空气质量提醒 微实例4.4:PM 2.5空气质量提醒(1)第23页微实例4.4:PM 2.5空气质量提醒(1)第24页微实例4.4展示了用数字进行条件比较例子,字符或字符串也能够用于条件比较。字符串比较本质上是字符串对应Unicode编码比较,所以,字符串比较按照字典次序进行。比如,英文大写字符对应Unicode编码比小写字符小。以下是一
8、些例子:微实例4.4:PM 2.5空气质量提醒(1)第25页Python中if-else语句用来形成二分支结构,语法格式以下:if :else:二分支结构:if-else语句第26页是在if条件满足后执行一个或多个语句序列,是if条件不满足后执行语句序列。二分支语句用于区分两种可能True或者False,分别形成执行路径。二分支结构:if-else语句第27页二分支结构:if-else语句第28页二分支结构还有一个更简练表示方式,适合经过判断返回特定值,语法格式以下:if else 其中,普通是数字类型或字符串类型一个值,微实例4-5能够改造为:二分支结构:if-else语句第29页Pytho
9、nif-elif-else描述多分支结构,语句格式以下,如图4.10所表示if:elif:.else:多分支结构:if-elif-else语句第30页多分支结构是二分支结构扩展,这种形式通惯用于设置同一个判断条件多条执行路径。Python依次评定寻找第一个结果为True条件,执行该条件下语句块,同时跳过整个if-elif-else结构,执行后面语句。假如没有任何条件成立,else下面语句块被执行。else子句是可选。多分支结构:if-elif-else语句第31页微实例4.4经过多条独立if语句对同一个变量PM进行判断,这种情况更适合多分支结构,改造后代码以下:多分支结构:if-elif-el
10、se语句第32页实例5:身体质量指数BMI第33页身体质量指数BMI第34页BMI值能够“客观”衡量个人肥胖程度或者说健康程度。世界卫生组织(WHO)依据对全球人口体重统计认为,BMI值低于18.5 kg/m2时属于“过轻”,表明个体可能营养不良或者饮食无法保障;BMI值高于25 kg/m2时属于“过重”。分类国际BMI值(kg/m2)国内BMI值(kg/m2)偏瘦18.5=30=28身体质量指数BMI第35页本实例编写一个依据体重和身高计算BMI值程序,并同时输出国际和国内BMI指标提议值。该问题IPO描述以下:输入:身高和体重值处理:计算BMI值,并依据BMI指标分类找到适当分类输出:打印
11、指标分类信息身体质量指数BMI第36页实例代码5.1第37页实例代码5.1程序执行后效果以下:第38页实例代码5.1采取了多分支结构对BMI数值按照不一样区间范围进行分类,这种采取if-elif-else分支语句进行程序设计方式十分常见。尽管需要同时打印国际和国内两套BMI标准,程序中采取两个if-elif-else语句分别计算两类不一样BMI值。这种做法好处是代码清楚明了,轻易调试。身体质量指数BMI第39页实例代码5.2程序执行后效果以下:第40页比较实例代码5.1和实例代码5.2能够看到,if语句利用主要与程序编写者对问题了解及算法设计相关,采取一组if语句将两套BMI指标融合在一起,这实际上是算法改变。即使对专业程序员来说,程序简练性和可读性都比更少代码行数主要,这里,推荐采取实例代码5.1方式编写程序。身体质量指数BMI第41页