课 题 | 《周而复始的循环》 | |||||
授课教师 | 王晨阳 | 类型 | 新授课 | |||
授课年级 | 高一 | 课时 | 1课时 | |||
一、学情分析 | ||||||
本课教学对象为高一年级学生。这一阶段的学生求知欲望强烈,头脑思维活跃,想法往往富有个性,勇于实践探究,对信息技术有着浓厚的学习兴趣,但是信息素养和操作技能还有待进一步的提高。此外,学生在前面的课中已经学习了基本的赋值语句与分支语句,也对自然语言与伪代码有了初步的认识,具有一定的python编程基础,但前期没有系统地学习过循环语句的相关知识,没有相对应的编程基础。 | ||||||
二、教学目标 | ||||||
1、 了解循环的概念与作用,了解列表的用法。 2、 掌握for循环的一般用法与作用。 3、 对具体问题进行抽象建模,尝试用for循环解决实际问题。 | ||||||
三、教学重难点 | ||||||
教学重点 | 计数循环 | |||||
教学难点 | 1、 实际问题的抽象建模 2、 循环中变量的迭代 | |||||
四、教学环境 | ||||||
网络机房,python(python-3.9.4-amd64.exe自备) | ||||||
五、教学过程 | ||||||
教学环节 | 教师活动 | 学生活动 | 设计意图 | |||
情境导入 | 由我国金融市场的日益繁茂,理财方式日益多样化,询问学生他们知道有哪些理财方式,并引出“学会投资理财”的项目。 | 学生回答已知的理财方式。 | 通过学生感兴趣的金融理财导入课堂,吸引学生的兴趣,并引出今天的学习内容。 | |||
例题分析 | 引导学生用自然语言描述任务一与任务二的存款变化,让学生总结出任务一与任务二的规律后,再用流程图来加深学生对题目的理解,并引出循环的作用。 任务一、计算利率不变情况下的到期存款总额 如果将5万元存入银行,选择“1年定期、自动转存”的存款方式,假设5年内存款利率没有发生变化,均为3.25%,5年后到期存款总额是多少?在程序中,暂不考虑存款分位以下的四舍五入。 第1年 存款总额 = 本金 * (1+3.25%) 第2年 存款总额 = 上一年存款总额 * (1 + 3.25%) 第3年 存款总额 = 上一年存款总额 * (1 + 3.25%) 第4年 存款总额 = 上一年存款总额 * (1 + 3.25%) 第5年 存款总额 = 上一年存款总额 * (1 + 3.25%) 任务二、计算利率变动情况下的到期存款总额 如果首次存款时的利率是3.25%,自动转存时,利率分别是3%、3%、2%、1.75%,那么5年后到期存款总额是多少? 第1年 存款总额 = 本金 * (1 + 3.25%) 第2年 存款总额 = 上一年存款总额 * (1 + 3%) 第3年 存款总额 = 上一年存款总额 * (1 + 2%) 第4年 存款总额 = 上一年存款总额 * (1 + 4%) 第5年 存款总额 = 上一年存款总额 * (1 + 3.75%) 流程图
补充: 流程图中的year<5,是用来计数的。 利率的变化暂不考虑,统一用rate来表示,后面用列表来填坑。 | 学生观察任务一与任务二的存款变化,用自然语言描述任务一与任务二,通过流程图直观地体会循环的过程。 | 让学生通过任务一与任务二中存款总额的重复计算与流程图中的循环,体会循环的过程,更好地理解循环的作用与优点。 | |||
计数循环 | 在前面已经引出计算机中的循环的前提下,讲解任务一与任务二所需的计数循环的用法与要求。 for 循环变量 in 列表: 语句或语句组 for 循环变量in range(): 语句或语句组 注意事项: 1、冒号要记得 2、循环体缩进4格 | 学生要求掌握python中的计数循环与注意事项,并能过够熟练地进行运用。 | 为了完成任务一与任务二的计算,需要计数循环这一知识点的补充。 | |||
列表 | 在任务一与任务二的计算中,需要用一个变量来记录一组数据,需要补充列表的相关用法。 创建列表 object = ["石榴", 1, "香蕉", "橙子", "梨子"] 修改列表第1个元素的值 object[0] = "苹果" 删除列表第2个元素 del object[1] 在列表尾部添加一个数据元素 object.append("猕猴桃") 输出列表 print(object) 插入元素 object.insert("苹果") 列表逆序 object.reverse() 列表排序 object.sort() 打印列表 print object | 学生了解列表的相关用法,为下面补全任务一与任务二的代码做准备。 | 讲解列表的用法,为下面任务一与任务二的代码做铺垫。 | |||
代码补齐 | 在完成任务一与任务二所需所有知识点的讲解后,引导学生在给出提示的情况下,完成相关代码的编写。 任务一答案 money = 50000 rate = 0.0325 for i in range(5): money = round(money * (1 + i), 2) print(“5年以后存款总额:”, money, “元”) 任务二答案 money = 50000 rate = [0.0325, 0.03, 0.03, 0.02, 0.0175] for i in rate: money = round(money * (1 + i), 2) print(“5年以后存款总额:”, money, “元") 补充:任务一与任务二都需要用到round函数 | 学生在老师给出提示的情况下完成任务一与任务二的代码编写。 | 学生完成相关代码的编写,完成任务一与任务二的计算,加深对计数循环的理解。 | |||
课堂小结 | 我们使用for关键字来实现计数循环,它主要用在循环次数已知的情况下进行循环,我们可以用range函数或者列表来控制它的循环次数。此外python对程序的条件格式要求非常高,我们要记得循环体前的一个缩进。希望同学们能够在以后的学习过程中熟练地使用计数循环。 | 学生听老师对本节课内容进行总结。 | 老师总结计数循环的作用与适用范围,让学生对计数循环留下一个系统全面的认识。 | |||
课后作业 | 如果在一个循环中包含另一个循环,则称为循环嵌套。下面的双重循环可实现九九乘法表。 for i in range(1, 10) for j in range(i, i + 1) print("{0: 1} * {1: 1} = {2: 2} ".format(j, i, j * i), end = "") print() 上面的程序中通过forma()函数来控制格式化的输出。其中,“{0:1}”表示第0个参数,即j输出长度为1个字符; end = ""表示输出结束后,不换行。 | 有能力的学生课后思考循环嵌套,尝试运行程序,查看程序运行的结果。 | 对计数循环有兴趣同学的课外补充,激发学生继续对计数循环深入学习。 | |||
教学流程

图