Python电子教案4-1 程序的控制结构
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微实例4.3:整数累加。
• 计算1到正整数R的算术和。图4.8分别给出了该计算问题的IPO描述 、流程图描述和Python代码描述。
输入:正整数R 处理:
S=1+2+3+…+R
输出:输出S
程序的基本结构实例
•IPO描述、流程图描述和Python代码描述是解决计算问题的三种描 述方式,细致程度逐步递进。IPO描述主要用于区分程序的输入输出 关系,重点在于结构划分,主要采用自然语言描述。流程图描述侧重 于描述算法的具体流程关系,流程图的结构化关系相比自然语言描述 更进一步,有助于阐述算法的具体操作过程。Python代码描述是最 终的程序产出,最为细致。
身体质量指数BMI
•本实例编写一个根据体重和身高计算BMI值的程序,并同时输出国际 和国内的BMI指标建议值。该问题的IPO描述如下:
输入:身高和体重值 处理:计算BMI值,并根据BMI指标分类找到合适分类 输出:打印指标分类信息
实例代码5.1
实例代码5.1
程序执行后的效果如下:
身体质量指数BMI
•该问题的IPO描述如下: 输入:接收外部输入PM2.5值 处理: if PM2.5值 >= 75,打印空气污染警告 if 35 <= PM2.5值 < 75,打印空气污染警告 if PM2.5值 < 35,打印空气质量优,建议户外运动 输出:打印空气质量提醒
微实例4.4:PM 2.5空气质量提醒(1)
多分支结构: if-elif-else语句
•微实例4.4通过多条独立的if语句对同一个变量PM进行判断,这种情 况更适合多分支结构,改造后的代码如下:
实例5: 身体质量指数BMI
2021/10/10
33
身体质量指数BMI
•
身体质量指数BMI
•BMI值可以“客观的”衡量个人的肥胖程度或者说健康程度。世界卫 生组织(WHO)根据对全球人口体重的统计认为,BMI值低于18.5 kg/m2时属于“过轻”,表明个体可能营养不良或者饮食无法保障; BMI值高于25 kg/m2时属于“过重”。
•Python中if-else语句用来形成二分支结构,语法格式如下: if <条件>: <语句块1> else: <语句块2>
二分支结构: if-else语句
•<语句块1>是在if条件满足后执行的一个或多个语句序列,<语句块 2>是if条件不满足后执行的语句序列。 •二分支语句用于区分<条件>的两种可能True或者False,分别形成执 行路径。
第4章程序的控制结构
2021/10/10
1
程序的基本结构
2021/10/10
2
程序流程图
•程序流程图用一系列图形、流程线和文字说明描述程序的基本操作 和控制流程,它是程序分析和过程描述的最基本方式
程序流程图
•起止框表示一个程序的开始和结束; •判断框判断一个条件是否成立,根据判断结果选择不同的执行路径 •处理框表示一组处理过程; •输入输出框表示数据输入或结果输出;
单分支结构: if语句
•if语句中<语句块>执行与否依赖于条件判断。但无论什么情况,控 制都会转到if语句后与该语句同级别的下一条语句。 •if语句中<条件>部分可以使用任何能够产生True或False的语句或函 数。形成判断条件最常见的方式是采用关系操作符。
单分支结构: if语句
•Python语言共有6个关系操作符,见表4.1所示。
程序的分支结构
2021/10/10
17
单分支结构: if语句
•Python中if语句的语法格式如下: if <条件>: <语句块>
•<语句块>是if条件满足后执行的一个或多个语句序列,<语句块>中 语句通过与if所在行形成缩进表达包含关系。
单分支结构: if语句
•If语句首先评估<条件>的结果值,如果结果为True,则执行<语句块 >里的语句序列,然后控制转向程序的下一条语句。如果结果为False ,<语句块>里的语句会被跳过。if语句的控制过程如图4.9所示
微实例4.1:圆面积和周长的计算。
•根据圆的半径计算圆的面积和周长。图4.6分别给出了该问题的IPO 描述、流程图描述和Python代码描述。
输入:圆半径R 处理: 圆面积:S = π*R*R 圆周长:L = 2*π*R 输出:圆面积S、周长L
程序的基本结构实例
•程序的描述方式主要有三类,分别是自然语言、流程图和伪代码。 •自然语言描述方式指使用人类语言直接描述程序,IPO描述是这类的 一种。优点是灵活自然,缺点是比较繁琐,容易出现二义性,一个描 述可以产生多种不同的程序代码。 •流程图描述是程序最直观易懂的表达方式,主要适用于较短算法。 优点是直观、清晰且逻辑确定,缺点是流程图绘制比较繁琐,当程序 较大时流程图会很复杂,反而降低了表达的清晰性。
程序流线以带箭头直线或曲线形式指示程序的执行路径; •连接点将多个流程图连接到一起,常用于将一个较大流程图分割为 若干部分。
程序流程图
程序的基本结构
•顺序结构是程序按照线性顺序依次执行的一种运行方式,如图4.3所 示,其中S1和S2表示一个或一组顺序执行的语句。
微实例4.4:PM 2.5空气质量提醒(1)
•微实例4.4展示了用数字进行条件比较的例子,字符或字符串也可以 用于条件比较。字符串比较本质上是字符串对应的Unicode编码的比 较,因此,字符串的比较按照字典顺序进行。 •例如,英文大写字符对应的Unicode编码比小写字符小。以下是一些 例子:
二分支结构: if-else语句
•Python的if-elif-else描述多分支结构,语句格式如下,如图4.10所 示
if <条件1>: <语句块1>
elif <条件2>: <语句块2>
... else:
<语句块N>
多分支结构: if-elif-else语句
•多分支结构是二分支结构的扩展,这种形式通常用于设置同一个判 断条件的多条执行路径。 •Python依次评估寻找第一个结果为True的条件,执行该条件下的语 句块,同时跳过整个if-elif-else结构,执行后面的语句。如果没有任 何条件成立,else下面的语句块被执行。else子句是可选的。
程序的基本结构实例
•伪代码描述是介于自然语言与编程语言之间的一种算法描述语言。 使用伪代码不用拘泥于具体编程语言,对整个算法运行过程的描述最 接近自然语言。与直接的自然语言描述不同,伪代码在保持程序结构 的情况下描述算法
微实例4.2:实数绝对值的计算
•计算用户给定实数的绝对值。图4.7分别给出了该计算问题的IPO描 述、流程图描述和Python代码描述。
•程序执行后的效果如下:
二分支结构: if-else语句
二分支结构: if-else语句
•二分支结构还有一种更简洁的表达方式,适合通过判断返回特定值 ,语法格式如下:
<表达式1> if <条件> else <表达式2> •其中,<表达式1/2>一般是数字类型或字符串类型的一个值,微实 例4-5可以改造为:
多分支结构: if-elif-else语句
微实例4.4:PM 2.5空气质量提醒(1)
•一个简化版的空气质量标准采用三级模式:0-35为优,35-75为良, 75以上为污染。人们也许不关心PM2.5指数值具体为多少,更关心空 气质量到底怎样。计算机可以通过PM2.5指数分级发布空气质量提醒 。
微实例4.4:PM 2.5空气质量提醒(1)
•实例代码5.1采用了多分支结构对BMI数值按照不同区间范围进行分 类,这种采用if-elif-else分支语句进行程序设计的方式十分常见。尽 管需要同时打印国际和国内两套BMI标准,程序中采用两个if-elifelse语句分别计算两类不同BMI值。这种做法的好处是代码清晰明了 ,容易调试。
实例代码5.2
程序的基本结构
•分支结构是程序根据条件判断结果而选择不同向前执行路径的一种 运行方式。由二分支结构会组合形成多分支结构。
程序的基本结构
•循环结构是程序根据条件判断结果向后反复执行的一种运行方式, 根据循环体触发条件不同,循环结构包括条件循环和遍历循环结构。
程序的基本结构实例
•对于一个计算问题,可以用IPO描述、流程图描述或者直接以 Python代码方式描述。本书仅对这几种描述进行介绍,功能简单的 问题建议大家直接编写Python代码,功能复杂的问题读者可以采用 IPO描述或流程图描述为手段。下面给出3个微实例,通过不同的描述 方法具体解释程序的三种基本结构。