1、分支结构的程序实现(分支结构的程序实现(if-elif)教学设计)教学设计 分支结构的程序实现(分支结构的程序实现(if-elifif-elif) 教材内容:教材内容:本课包含教材 3.2.3 分支结构的程序实现 2.if-elif 语句。 适应的课程标准:适应的课程标准: 1.7 掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题, 体验程序设计的基本流程。 教学目标:教学目标: 掌握 if-elif 语句的格式。 学会利用 if-elif 语句编写分支结构的程 序解决问题。 指向的核心素养:指向的核心素养: 信息意识:能够根据解决问题的需要,自觉、 主动地寻求恰
2、当的方式获取与处理信息。 计算思维:在信息活动中能够采用计算机可以 处理的方式界定问题、抽象特征、建立结构模型、 合理组织数据。通过判断、分析与综合各种信息 资源,运用合理的算法形成解决问题的方案。 学习环境:学习环境:有教学控制软件的多媒体机房,需要安装 Python 编程环境。 课程标准课程标准 和和 教学目标教学目标 建议课时:建议课时:1 课时 教学环节教学环节教学过程教学过程设计意图设计意图 教学活动教学活动 设计设计 情境导入情境导入 试一试:在上节课学习 if 语句的时候,我们曾经举个 生活中 if 语句伪代码的实例,比如下面这个例子: if 今晚不下雨: 去体育馆打篮球 els
3、e: 去健身房健身 在这个例子中,只有“下雨”和“不下雨”这两种情况, 但是现实世界的问题并非如此简单,请看下面的流程图: 在上面的流程图中,情况变的复杂了,下不下雨和朋友 有没有空组合成了 4 中不同情况,这样的问题,用 if 语句来编写伪代码该如何实现呢?请尝试。 通过试一试可以回顾上节课学习过的 if 语句,同时也可以让学生了解条件较多、 情况较复杂的分支结构编写成程序的时候 只用 if 语句存在语句层次亲淘较多、可 读性差或者程序执行效率较差等缺点,从 而因此本节课要学习的 if-elif 语句。 参考答案: 程序实现 if 今晚下雨 and 朋友有空: 和朋友一起看电影 else:
4、if 今晚下雨 and 朋友没空: 独自一个人健身房健身 else: if 今晚不下雨 and 朋友有空: 和朋友一起打篮球 else: 独自一个人户外长跑 程序实现 if 今晚下雨 and 朋友有空: 和朋友一起看电影 if 今晚下雨 and 朋友没空: 独自一个人健身房健身 if 今晚不下雨 and 朋友有空: 和朋友一起打篮球 if 今晚不下雨 and 朋友有空: 独自一个人户外长跑 讨论:同学们认为这两种程序实现的方式好不好, 是否有什么缺点? 教师引导总结:可以发现,情况比较复杂的分支 结构仅仅用上节课学习过的 if 语句来解决,是比较麻 烦的,程序实现if 语句嵌套比较多,读性也比
5、较差。 程序实现可读性较好,但是存在一个问题:在第一个 条件就满足的情况,后面的每个条件已经不可能成立了 但是还会去依次进行判断,执行效率来说比较差。对于 这种情况比较复杂的分支结构的程序实现,Python 提 供了一种解决方案-if-elif 语句,这也是我们今天要 学习的内容。 新课教学新课教学 知识讲解知识讲解if-elifif-elif 语句语句 教师展示 if-elif 语句的一般格式: if: elif : elif : else: 一个 if 语句可以包含多个 elif 子句,最后一个 else 语句是可选的。elif 子句仅当其 if 语句中的条件为假 时才执行。如果 if 语
6、句和 elif 子句中的条件都不为真 时,末尾的 else 子句的语句块就会被执行。因此,带 有 elif 子句的 if 语句有一个很重要的特性:只要某个 条件为真,计算机就会执行其所对应的语句块,然后退 出该语句。 上面同学们写的试一试的程序实现的代码稍作修改, 就是 if-elif 语句的分支结构的程序实现: if 今晚下雨 and 朋友有空: 和朋友一起看电影 elif 今晚下雨 and 朋友没空: 独自一个人健身房健身 elif 今晚不下雨 and 朋友有空: 和朋友一起打篮球 elif 今晚不下雨 and 朋友有空: 独自一个人户外长跑 如上所示代码,当执行到条件成立的语句块时,if
7、- elif 语句就会退出,从而避免了效率问题,而且在这 个程序实现中也可以发现,else 分支是可以省略的。 当然该代码最后一种情况是上面三种情况都不成立时候 的情况,所以代码也可以改写为如下形式: if 今晚下雨 and 朋友有空: 和朋友一起看电影 elif 今晚下雨 and 朋友没空: 独自一个人健身房健身 elif 今晚不下雨 and 朋友有空: 和朋友一起打篮球 else: 独自一个人户外长跑 学生活动学生活动if-elifif-elif 语句实战:学生考试等第判断语句实战:学生考试等第判断 编写程序,输入分数(1, 100之间的整数) ,如 果分数在85, 100之间等第为优秀,
8、70, 84等第为 让学生理解 if-elif 语句的语法格式以及 它的使用。通过将试一试中的代码变形得 到 if-elif 语句能够让学生理解 if-elif 语句在解决情况较为复杂的分支结构的问 题的时候的优点。 通过 if-elif 实战,让学生初步掌握 if- elif 语句的格式及其实际应用。 良好,60, 69之间等第为合格,0, 59之间等第为 不合格。 参考答案: score = int(input(请输入分数:) if score = 85: print(优秀) elif score = 70: print(良好) elif score = 60: print(合格) els
9、e: print(不合格上) 学生任务学生任务“区间测速区间测速”问题问题 目前,国内很多高速公路都启用了区间测速。所谓区间 测速,是在同一路段上布设两个监测点,基于车辆通过 前后两个监测点的时间来计算车辆在该路段上的平均行 驶速度,并依据该路段上的限速标准判定车辆是否超速。 现有一段长为 25 千米的测速区间,小车的限速是 100 千米/小时。数据中心需要编写一 段程序,用来判断某 辆小车在此测速路段是否超速。 在上述“区间测速”的基础上,如果某辆小车超速,数 据中心能同步显示超速的程度, 如“超过规定时速且 不足 20%” 、 “超过规定时速 20%以上且不足 50%” 、 “超 过规定时
10、速 50% 以上且不足 70%” 、 “超过规定时速 70% 以上” 。如何用程序来实现这个目标? 对该任务进行抽象建模,随后设计算法,最终编写程序 用于判断小车是否在此测速路段超速。 任务:抽象建模 绘制超速标准及判断条件对应表格,并给出计算模型。 参考答案: 超速标准判断条件 超过规定时速且不 足 20% 100v120 超过规定时速 20% 以上且不足 50% 120v150 超过规定时速 50% 以上且不足 70% 150v170 超过规定时速 70% 以上 170v 计算模型 平均速度计算: = 判断结果: 通过分析得到“区间测试”问题的计算模 型,为后续的设计算法与编写程序作铺垫。
11、 “超过规定时速且不足 20%”(100v120) “超过规定时速且不足 20%”(120v150) “超过规定时速 50%以上且不足 70%”(150v170) “超过规定时速 70%以上”(170v) 任务:设计算法 根据计算模型,设计解决“区间测试”问题的算法,并 绘制流程图。 参考答案: 任务:编写程序 根据设计的算法编写解决“区间测试”问题的程序。 参考答案: t = float(input(请输入用时:) s = 25 v = s / t print(平均车速: + str(v) if v = 100: print(正常) elif v 120: print(超过规定时速且不足 2
12、0%) elif v 150: print(超过规定时速 20%以上且不足 50%) elif v 170: print(超过规定时速 50%以上且不足 70%) else: print(超过规定时速 70%以上) 为后续的编写程序打下基础。 通过该任务让学生学会利用 Python 语言 编写分支结构的 if-elif 语句的程序解决 问题,完成本课难点教学。 课堂小结课堂小结 1.if-elif 语句的格式。 2.利用 if-elif 语句编写分支结构的程序 解决问题。 通过回顾总结帮助学生巩固本节课的学习 内容。 作业布置作业布置 基础作业(面向所有学生): 本节配套课后作业 基础作业主要
13、是巩固本节课学习到的知识。 提高作业给学有余力的同学完成,将 if- 提升作业(面向学有余力学生): 将“区间测速”问题的 if-elif 语句的程序实现修改为 if 语句的程序实现,对比实现上有何不同? elif 语句改写为 if 语句有助于进一步掌 握 if 语句的缩进,也能更好的理解 if- elif 语句在解决多条件分支结构程序的优 势。 教学设计教学设计 思路思路 第 3 课时的内容为分支结构的程序实现(if-elif 语句)。if-elif 语句是 if 语句的加强版,在 if 语句的基础 上添加了多条件的判断。在进行 if-elif 语句教学的时候建议在上节课学习过的 if 语句
14、的基础上进行 if-elif 语句 的教学。建议这节课采用问题或任务驱动教学法。在导入阶段建议可以将上节课导入阶段的生活实例改造为多条件 的分支结构的程序,引导学生对其分析,发现 if 语句的不足,从而引出本节课的学习内容。建议教师使在讲解 if- elif 语句格式和使用的基础上让学生先完成一个简单的 if-elif 语句的应用-学生考试等第判断,让学生初步掌握 if-elif 语句的格式和使用,完成本课重点的教学。建议教师可在上节课“区间测速”实例的基础上,提出“区分超 速程度”的问题,引发学生的思考。此时,教师可引导学生自主学习 if-elif 语句,并完成“区分超速程度”的任 务。通过
15、多分支语句的学习,结合“区间测速超速的程度区分”实例,抽象出各级的条件,编制相应的程序,理解 if-elif 语句的功能和应用,在此过程中也完成本课难点的教学。 针对针对 核心素养核心素养 培养的培养的 设计考虑设计考虑 本课核心素养的落点主要是计算思维和信息意识。 计算思维落点是在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织 数据。通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案。为此,使用了上节课的学习任 务“区间测试”问题,但是,在此基础上做了改进,添加了更多的条件。这个任务分解了 3 个小任务,抽象建模、 设计算法、编写程序正是为落
16、实计算思维的培养而专门设计的。第一个任务抽象建模,学生在教师的引导下通过分 析问题得到该问题的计算模型,培养采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数 据的计算思维。第二个小任务设计算法和第三个小任务编写程序能够培养学生通过判断、分析与综合各种信息资源, 运用合理的算法形成解决问题的方案的计算思维。 信息意识的落点是能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息。学习任务“区 间测试”问题的第一个小任务抽象建模阶段,学生需要从问题描述中抽象出问题解决所需的要素,在此过程中落实 信息意识的培养。 分支结构的程序实现(分支结构的程序实现(if)教学设计)
17、教学设计 分支结构的程序实现(分支结构的程序实现(ifif) 教材内容:教材内容:本课包含教材 3.2.3 分支结构的程序实现 1.if 语句与 3.2.1Python 语言基础中的关系运 算符和逻辑运算符。 适应的课程标准:适应的课程标准: 1.7 掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。通过解决实际问题, 体验程序设计的基本流程。 教学目标:教学目标: 掌握 if 语句的格式。 掌握关系运算符和逻辑运算符。 学会利用 if 语句编写分支结构的程序解决 问题。 指向的核心素养:指向的核心素养: 信息意识:能够根据解决问题的需要,自觉、 主动地寻求恰当的方式获取与处理信息
18、。 计算思维:在信息活动中能够采用计算机可以 处理的方式界定问题、抽象特征、建立结构模型、 合理组织数据。通过判断、分析与综合各种信息 资源,运用合理的算法形成解决问题的方案。 学习环境:学习环境:有教学控制软件的多媒体机房,需要安装 Python 编程环境。 课程标准课程标准 和和 教学目标教学目标 建议课时:建议课时:1 课时 教学环节教学环节教学过程教学过程设计意图设计意图 教学活动教学活动 设计设计 情境导入情境导入 问题:在第二章的学习中,同学们已经理解了分支结构 的流程,接下来请大家看下面的两块伪代码: 伪代码 if 今晚不下雨: 去体育馆打篮球 else: 去健身房健身 伪代码
19、if车牌记录在小区住户汽车记录能够查询到: 通过生活实例伪代码引出本课要学习的 if 语句的内容。使用生活实例有助于学生更 容易理解分支结构的代码表示形式。 解锁门禁,允许汽车驶入 else: 提示警告音,禁止通行 在这两块伪代码中,if 代表“如果” ,else 代表 “否则” 。请大家思考, “如果”和“否则”的代码是否 会都运行?如果只是运行其中的一块,是由什么来控制 的?和我们第二章学习过的什么控制结构一致? 参考答案: 这两块代码要么运行“如果”后的代码,要么运行“否 则”后的代码,都是通过 if 后面的问题答案来确定执 行哪一块的。与第二章学习过的控制结构中的分支结构 一致。 新课
20、教学新课教学 知识讲解if 语句格式、关系运算符、逻辑运算符 教师展示 if 语句的一般格式: if: else: 条件是一个表达式,它的值是布尔类型的数据,不是真 (True)就是(False) 。条件为真时,执行语句块 1。 条件为假时执行语句块 2。在上面 if 语句一般格式中 特别注意!语句块 1 和语句块 2 都缩进了 4 格,这是 python 的固定强制语法格式。 else 语句块也可省略,if 语句变为: if: if 语句格式中的条件可以用关系运算符或者逻辑运算 符来计算,关系运算符和逻辑运算符见下表。 Python 关系运算符 理解关系运算符、逻辑运算符和 if 分支 结构
21、程序的编写。 运算符运算符表达式表达式描述描述示例示例 x y x 大于 y52 结果是 True x y x 小于 y5=x = y x 大于等于 y5=2 结果是 True =x = y x 小于等于 y5 60: print(及格) else: print(不及格) 通过简单分支结构程序语句编写初步掌握 关系运算符、逻辑运算符和 if 分支结构 程序的编写。 输入一个整数,如果该数既是 3 的倍数又是 7 的倍数 则输出 ok。 参考答案: n = int(input(请输入整数:) if n % 3 = 0 and n % 7 = 0: print(ok) 学生任务学生任务“区间测速区
22、间测速”问题问题 目前,国内很多高速公路都启用了区间测速。所谓区间 测速,是在同一路段上布设两个监测点,基于车辆通过 前后两个监测点的时间来计算车辆在该路段上的平均行 驶速度,并依据该路段上的限速标准判定车辆是否超速。 现有一段长为 25 千米的测速区间,小车的限速是 100 千米/小时。数据中心需要编写一 段程序,用来判断某 辆小车在此测速路段是否超速。 对该任务进行抽象建模,随后设计算法,最终编写程序 用于判断小车是否在此测速路段超速。 任务:抽象建模 a.区间测速需要测量哪些数据? b.该问题计算数据模型是怎样的? 参考答案: a.判断小车是否超速最关键的是需要计算该车辆在该路 段的平均
23、行驶速度 v,该段区间的长度 s 固定不变,始 终为 25km,只需要测量小车进入该区间和离开该区间 的时间 t 就可以求解平均行驶速度 v。 b.计算模型 平均速度计算: = “正常”(v 100) 任务:设计算法 根据计算模型,设计解决“区间测试”问题的算法,并 绘制流程图。 参考答案: 任务:编写程序 根据设计的算法编写解决“区间测试”问题的程序。 参考答案: t = float(input(请输入用时(小时):) s = 25 v = s / t if v = 100: print(正常) else: print(超速) 问题与讨论:分下下面两段代码,找出两者的区别。 为后续的编写程序
24、打下基础。 通过该任务让学生学会利用 Python 语言 编写分支结构的 if 语句的程序解决问题, 完成本课难点教学。通过问题与讨论进一 步理解每条语句的功能,并感受顺序结构 代码段 A: t = float(input(请输入用时(小时):) s = 25 v = s / t if v = 100: print(正常) else: print(平均车速: + str(v) print(超速) 代码段 B: t = float(input(请输入用时(小时):) s = 25 v = s / t if v = 100: print(正常) else: print(平均车速: + str(v)
25、 print(超速) 参考答案: 代码段 A 的 print(超速)因为没有缩进,所以总是会 执行。而代码段 B 的 print(超速)因为缩进了 4 格, 属于 else 语句的代码块,只有 v=100 不成立的时候才 会执行。 的执行过程。 课堂小结课堂小结 1.if 语句的格式。 2.关系运算符和逻辑运算符。 通过回顾总结帮助学生巩固本节课的学习 内容。 3.利用 if 语句编写分支结构的程序解决问题。 作业布置作业布置 基础作业(面向所有学生): 本节配套课后作业 提升作业(面向学有余力学生): 编程实践:在 Python 的 Shell 中输入以下表达式看看 能得到怎么样的结果?这些
26、表达式是如何进行关系运算 的? 4 5 5 4 3 2 1 6 5 7 4 2 基础作业主要是巩固本节课学习到的知识。 提高作业给学有余力的同学完成,让学生 了解在 Python 中关系运算表达式的语法 糖表示形式。 教学设计教学设计 思路思路 本课的内容为分支结构的程序实现(if 语句)。建议这节课采用实例教学法和任务驱动教学法。学生在第二章 的学习中,已经理解了分支结构的流程,本节课可在前面基础上,参考如下教学设计思路:首先,引入 if 语句来实 现程序。对照 if 语句的格式,建议通过生活中的一些实例,如“根据天气选择是否外出”、“根据车牌识别结果是 否解锁门禁判断”等,抽象出相应的“条
27、件”和“语句块”,通过“条件”引出关系运算符和逻辑运算符,学习这 重量运算符并通过实例来巩固学习的成果。教师可引导学生灵活运用关系运算符和逻辑运算符对“条件”进行描述, 帮助学生深入理解分支结构程序实现的过程与方法。接下来,结合“区间测速”任务,在抽象建模环节,引导学生 从问题描述中抽象出问题解决所需的要素,并将其形式化。如“距离”、“时间”、“速度”等要素,并对时间作 简化处理,同时,为后续的编程考虑,对这三个要素设定相应的数据类型及变量名。“条件”为小车运行速度与限 速比较的值(True 或 False),“语句块”分别为显示“正常”和“超速”信息,再根据公式 v=s/t 建立相应的模 型
28、。在抽象与建模的基础上设计相应的算法,并鼓励学生运用多种方式进行描述。最后,引导学生学会运用 if 语句 编写程序,并在调试程序过程中进一步理解分支结构程序实现的过程与方法。在编写和调试过程中,教师要关注程 序代码的缩进,可结合教材中的问题与讨论,组织学生进行分组讨论,不同的代码缩进对程序运行结果会产生哪些 影响。 针对针对 核心素养核心素养 培养的培养的 设计考虑设计考虑 本课核心素养的落点主要是计算思维和信息意识。 计算思维落点是在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织 数据。通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案。为此
29、,我设计了一个学习任务 “区间测试”问题,这个任务又分解为了 4 个小任务,其中的抽象建模、设计算法、编写程序三个小任务 正是为落实计算思维的培养而专门设计的。第一个任务抽象建模,学生在教师的引导下通过分析问题得到该问题的 计算模型,培养采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据的计算思维。第二 个小任务设计算法和第三个小任务编写程序能够培养学生通过判断、分析与综合各种信息资源,运用合理的算法形 成解决问题的方案的计算思维。 信息意识的落点是能够根据解决问题的需要,自觉、主动地寻求恰当的方式获取与处理信息。学习任务“区 间测试”问题的第一个小任务抽象建模阶段,学生需要从问题描述中抽象出问题解决所需的要素,在此过程中落实 信息意识的培养。