教案:有规律的数列与for循环
教案基本信息
课程名称:Python编程第七课 有规律的数列与for循环
授课对象:编程零基础初学者
课时安排:90分钟
教学形式:理论讲解 + 实践操作
一、 教学目标
知识与技能:
- 数学知识: 理解数列的概念(如自然数列、奇数列、偶数列),并能找出其项与序号之间的关系(通项公式)。
- 编程知识:理解for循环的语法和执行流程,掌握其遍历序列的功能。掌握range()函数的基本用法(1-3个参数),能生成不同的整数序列。能够将数列的数学规律转化为range()函数的参数,并用for循环输出。
过程与方法:
- 经历从观察数列规律到使用for循环和range()函数实现的过程,培养抽象和建模能力。
- 通过“猜想-验证-应用”的模式,探索range()函数不同参数的用法。
情感态度与价值观:
- 体会循环结构在处理重复性任务时的强大威力,感受编程的效率与美感。
- 培养通过逻辑分析解决有序问题的兴趣。
二、 教学重点与难点
教学重点: for循环与range()函数结合生成数列的方法。
教学难点: 理解range(start, stop, step)三个参数的含义(特别是stop是不包含的);将数列的数学规律准确地映射到range()的参数上。
三、 教学准备
教师: 安装Python环境的电脑、投影设备、教学课件。
学生: 电脑已安装Python环境。
四、 教学过程
(一) 情景导入:从重复劳动到循环(5分钟)
教师活动:
- 提出问题:“如果想在屏幕上打印前5个自然数,你会怎么写代码?”
- 学生可能会写出:print(1); print(2); print(3); print(4); print(5)。
- 继续追问:“如果要打印前100个呢?这样写有什么问题?”(繁琐、易错、难以修改)
- 引出主题:“编程的核心价值之一是让机器自动化地处理重复任务。
- 今天我们就学习一个强大的工具——for循环,让它来帮我们轻松搞定这类问题。”
设计意图: 创设认知冲突,让学生切身感受到循环结构的必要性,激发学习动机。
(二) 新知探究:for循环与range()函数(20分钟)
1. for循环初体验
基本语法(板书):
python
for 变量 in 序列:
# 循环体(需要重复执行的语句)
执行流程比喻: 就像一个老师拿着花名册点名,变量就是当前被点到的学生的名字,序列就是花名册。循环体就是对每个学生执行的操作(如答“到”)。
示例1:遍历字符串
python
for char in “Hello”:
print(char)
演示并解释:变量char依次被赋值为’H’,’e’,’l’,’l’,’o’,并分别打印。
2. 数列的“发动机”:range()函数
教师讲解: 我们经常需要数字序列,range()函数就是专门用来生成整数序列的。
range()的三种用法(核心内容,逐一讲解并演示):
用法一:range(stop) – 生成从0开始,到stop-1结束的序列。
python
# 生成序列:0, 1, 2, 3, 4
for i in range(5):
print(i, end=’ ‘) # 使用end=’ ‘让输出不换行
# 输出:0 1 2 3 4
关键强调: range(5)不包含5!这是最容易出错的地方。
用法二:range(start, stop) – 生成从start开始,到stop-1结束的序列。
python
# 生成序列:2, 3, 4, 5, 6, 7, 8, 9
for i in range(2, 10):
print(i, end=’ ‘)
# 输出:2 3 4 5 6 7 8 9
用法三:range(start, stop, step) – 生成从start开始,到stop-1结束,步长为step的序列。
python
# 生成序列:1, 3, 5, 7, 9 (从1开始,步长为2)
for i in range(1, 10, 2):
print(i, end=’ ‘)
# 输出:1 3 5 7 9
# 生成递减序列:5, 4, 3, 2, 1
for i in range(5, 0, -1):
print(i, end=’ ‘)
# 输出:5 4 3 2 1
(三) 范例讲解:生成特定数列(10分钟)
任务: 使用for循环和range()输出前N个自然数、偶数、奇数。
教师引导分析:
- 前N个自然数: 通常指1到N。所以start=1, stop=N+1(因为不包含)。
python
n = int(input(“请输入N: “))
print(“前”, n, “个自然数是:”)
for i in range(1, n+1): # 注意:n+1
print(i, end=’ ‘)
2.前N个正偶数: 偶数的规律是2, 4, 6, …,通项是2*i。我们可以让i从1到N,然后输出2*i。更直接的方法是:start=2, stop=2*N+1, step=2。
python
n = int(input(“请输入N: “))
print(“前”, n, “个正偶数是:”)
for i in range(2, 2*n+1, 2): # 从2开始,步长2
print(i, end=’ ‘)
3.前N个正奇数: 奇数的规律是1, 3, 5, …。使用range(1, 2*n, 2)。
python
n = int(input(“请输入N: “))
print(“前”, n, “个正奇数是:”)
for i in range(1, 2*n, 2): # 从1开始,步长2
print(i, end=’ ‘)
(四) 课堂练习与巩固(10分钟)
练习1:倒计时程序
任务:编写一个程序,输入一个正整数,然后从该数开始倒计时到0,最后输出”发射!”。
提示:使用range(start, stop, -1)。
参考代码:
python
num = int(input(“请输入一个正整数: “))
for i in range(num, -1, -1): # 停止值设为-1,才能包含0
print(i)
print(“发射!”)
练习2:数列求和
任务: 计算1+2+3+…+100的和。
提示: 需要在循环外定义一个累加变量(如total = 0),在循环内不断将数字加到total上。
参考代码:
python
total = 0 # 初始化累加器
for i in range(1, 101):
total = total + i # 等价于 total += i
print(“1到100的和是:”, total)
(五) 课堂小结与作业(5分钟)
小结:
- for循环:用于遍历序列,自动处理重复任务。
- range()函数:生成整数序列的利器。
range(stop) -> [0, stop)
range(start, stop) -> [start, stop)
range(start, stop, step) -> 按步长生成序列
3. 核心技巧:将数列的规律(起点、终点、步长)转化为range()的三个参数。
作业:
基础题: 编写程序,输出100以内(包括100)所有能被7整除的数。
挑战题: 编写程序,输出斐波那契数列(Fibonacci sequence)的前N项。斐波那契数列:1, 1, 2, 3, 5, 8, 13…(从第三项开始,每一项等于前两项之和)。
五、 板书设计
主标题: 有规律的数列与for循环
for循环结构:
python
for 变量 in 序列:
重复执行的代码块
range()函数详解:
range(5) -> 0,1,2,3,4
range(2,6) -> 2,3,4,5
range(1,10,2) -> 1,3,5,7,9
range(5,0,-1) -> 5,4,3,2,1
范例:
python
# 前N个自然数
for i in range(1, N+1)
# 前N个偶数
for i in range(2, 2*N+1, 2)