内容正文:
2.3 周而复始的循环导学案
——教科版(2019)高中信息技术必修1
一、学习目标
核心素养维度
学习目标
信息意识
能够识别生活中需要重复处理的问题场景,理解用循环结构替代重复代码是提高问题解决效率的有效途径
计算思维
掌握for循环和while循环的语法格式,能根据问题特征选择合适的循环结构,编写程序解决实际问题
数字化学习与创新
熟练使用Python开发环境编写、运行和调试循环程序
信息社会责任
养成规范编码的习惯,理解死循环对系统资源的危害,树立严谨负责的技术使用态度
二、学习重难点
重点:
· for循环的语法结构及range()函数的使用
· while循环的语法结构及循环条件的设置
· 两种循环结构的选择与区分
难点:
· 循环变量的迭代过程理解
· 循环条件的正确设置——避免死循环
· 根据实际问题选择合适的循环结构
三、知识准备(课前复习)
1. 回忆Python基础知识
(1)输入语句:变量 = input("提示语"),注意input()返回的是______类型数据,如需数值计算要用______函数转换。
(2)输出语句:print(变量或表达式)
(3)分支语句格式:
python
if 条件表达式:
语句块
else:
语句块
注意:条件表达式后面要加______,语句块前要有______。
2. 自测题
判断以下说法的正误:
1.Python中,if语句后面的条件表达式不需要加冒号( )
2.缩进在Python中用来表示代码的层次关系( )
3.input()函数可以直接获取用户输入的数字( )
四、课堂学习任务
【任务一】认识for循环——计数循环
1.情境引入:小明有50000元压岁钱,存一年定期,年利率3.25%,到期自动转存。5年后本息合计是多少?
如果用顺序结构写代码,需要把同一行代码复制5遍:
python
money = 50000
rate = 0.0325
money = money * (1 + rate) # 第1年
money = money * (1 + rate) # 第2年
money = money * (1 + rate) # 第3年
money = money * (1 + rate) # 第4年
money = money * (1 + rate) # 第5年
思考:如果要存20年呢?代码会变成什么样?
2.知识点拨
1)for循环的格式
python
for 循环变量 in range(循环次数):
循环体 # 缩进4个空格
2)range()函数
range(n):生成从0到n-1的整数序列
range(start, stop):生成从start到stop-1的整数序列
range(start, stop, step):生成从start到stop-1、步长为step的整数序列
示例:
range(5) → [0, 1, 2, 3, 4]
range(1, 6) → [1, 2, 3, 4, 5]
range(0, 10, 2) → [0, 2, 4, 6, 8]
3)重点提醒
· for语句末尾必须加冒号 :
· 循环体必须缩进(通常4个空格或1个Tab)
· range()是左闭右开区间——包含起始值,不包含结束值
3.实践操作
任务1-1:用for循环改写上面的存款计算程序
python
money = 50000
rate = 0.0325
for i in range(______): # 循环5次
money = money * (1 + rate)
print("5年后存款为:", money, "元")
任务1-2:修改代码,计算10年后、20年后的存款总额,观察输出变化。
任务1-3:如果利率每年不同——第1年3.25%,第2年3%,第3年3%,第4年2%,第5年1.75%,该如何修改程序?
python
money = 50000
rates = [0.0325, 0.03, 0.03, 0.02, 0.0175]
for r in ______: # 遍历列表中的每个利率
money = money * (1 + r)
print("5年后存款为:", money, "元")
小结:for循环适合循环次数已知的情况。
【任务二】认识while循环——条件循环
1.情境引入新问题:还是50000元,年利率3.25%,小明想知道存多少年才能翻倍变成10万元。
这一次,循环次数不知道——只知道“当钱不够10万时就继续存”。
2.知识点拨
1) while循环的格式
python
while 条件表达式:
循环体 # 缩进4个空格
# 必须有改变条件变量的语句
2)while循环的执行过程
判断条件表达式是否成立
如果成立,执行循环体
执行完循环体后,回到第1步重新判断
如果条件不成立,跳出循环
3)关键点
· 循环体中必须有改变条件变量的语句,否则会形成死循环
· while循环适合循环次数未知、由条件控制的情况
3. 实践操作
1)任务2-1:补全代码,计算多少年存款翻倍
python
money = 50000
rate = 0.0325
year = 0
while money < 100000: # 条件:钱不够10万就继续
money = money * (1 + rate)
______ = year + 1 # 计数器加1
print("需要", year, "年才能翻倍")
2)任务2-2:故意删掉 year = year + 1 这一行,运行程序,观察发生了什么?
①你看到了什么现象?____________________
②如何强制停止程序?____________________
③这说明什么?____________________
3)任务2-3:如果想知道“存多少年能超过12万元”,应该修改哪一行代码?
python
while money < ______: # 修改这里
4.小结
for循环
while循环
适用场景
循环次数______
循环次数______
语法关键词
for ... in ...
while 条件表达式
常见搭档
range()、列表
计数器变量
风险点
range边界写错
忘记更新条件 → ______
【任务三】综合挑战——选哪个循环?
阅读以下问题,判断应该用for循环还是while循环,并说明理由。
问题描述
选择哪种循环?
理由
计算1+2+3+…+100的和
猜数字游戏,直到猜对为止
输出全班40名同学的姓名
输入密码,最多尝试3次
银行存钱,直到本息超过20万
五、课堂检测
1. 填空题:以下代码运行后,输出的结果是______。python
s = 0
for i in range(1, 5):
s = s + i
print(s)
2. 选择题:以下关于while循环的说法,正确的是( )
A. while循环的条件表达式必须始终为True
B. while循环体中必须有改变条件变量的语句
C. while循环不能和for循环互相替换
D. while循环不需要缩进
3. 改错题:以下代码存在错误,请指出并改正。
python
while n < 10
print(n)
n = n + 1
六、课后作业
1.必做题
1)用while循环和for循环分别实现:计算1到100所有整数的和。
2)for循环版本:
python
# 你的代码
while循环版本:
python
# 你的代码
2.选做题(拓展挑战)
“每天进步一点点”——假设你每天学习进步1%,即第2天的能力是第1天的1.01倍。请用for循环计算365天后的能力值是初始值的多少倍?
python
# 你的代码
七、学后反思
完成本节课学习后,请对自己的学习情况进行评价:
评价项目
完全掌握
基本掌握
需要帮助
能说出for循环的语法格式
能正确使用range()函数
能说出while循环的语法格式
能区分for循环和while循环的适用场景
能独立编写简单的循环程序
能避免死循环
本节课最大的收获:____________________
还有疑问的地方:____________________
学科网(北京)股份有限公司
$