第六课:让程序偷个懒 – for 循环
- 时长: 90 分钟
- 教学目标:
- 理解“循环”的概念:让电脑重复做一件事情。
- 学习
for
循环的语法:遍历一些列的东西(比如数字、文字)。 - 学会使用
range()
命令,方便地生成一系列数字供for
循环使用。 - 掌握用
for
循环重复执行一段代码固定次数。 - 学会用
for
循环处理字符串里的每一个字。 - 理解循环中那个不断变化的“小助手”(循环变量)。
课程内容
1. 复习与引入 (10 分钟)
- 复习: 复习条件判断
if-elif-else
和逻辑运算符。 - 提出问题: 老师提问:“如果我想在屏幕上打印 100 遍‘我学会编程了!’,或者想计算从 1 加到 100 的总和,难道要写 100 行
print()
或者 100 行变量 = 变量 + 数字
吗?太麻烦了!” - 引出循环: 很多时候,程序需要重复做同一件或者类似的事情。编程里的循环结构就是用来解决这个问题的,它能让电脑“偷个懒”,重复执行一段代码。 用跑步绕圈、抄写课文、点名等生活中的例子来比喻。
2. 开始重复 – for 循环基础 (20 分钟)
for
的作用:for
循环用来遍历一个序列里面的每一个元素。序列可以是一串数字、一个字符串,或者以后要学的列表等等。 每遍历到一个元素,循环体里的代码就会执行一次。- 语法:
for 变量名 in 序列: # 循环体:需要重复执行的代码 # 注意:这里的代码需要缩进! print("这段代码会重复执行")
`变量名` 是一个临时变量,在每次循环时会依次拿到序列中的下一个元素的值。
- 演示遍历字符串:
word = "Python" for letter in word: print("当前的字母是:", letter) # 输出会是: # 当前的字母是: P # 当前的字母是: y # ...
- 动手实践: 学生编写程序,用
for
循环遍历自己的名字,把名字里的每一个字都打印出来。
3. 方便的数字序列 – range() 函数 (20 分钟)
range()
的作用:range()
是一个非常有用的函数,它能快速生成一个数字序列,我们经常用它来控制for
循环执行的次数。range()
的用法:range(n)
: 生成从 0 到 n-1 的数字序列。# 打印 0 到 4 (共 5 个数字) for i in range(5): print(i)
range(start, stop)
: 生成从start
开始,到stop-1
结束的数字序列。(注意:不包含stop
!)# 打印 1 到 5 for num in range(1, 6): print(num) # 会打印 1, 2, 3, 4, 5
range(start, stop, step)
: 生成从start
开始,到stop-1
结束的数字序列,每次跳跃step
步。# 打印 0, 2, 4, 6, 8 (从0开始,每次加2,到10之前停止) for j in range(0, 10, 2): print(j) # 打印 10 到 1 的倒序 for k in range(10, 0, -1): print(k) # 会打印 10, 9, ..., 1
- 重点强调:
range()
函数生成的序列是“包头不包尾”的,即包含开始数字,但不包含结束数字。 - 动手实践: 学生尝试使用
range()
函数结合for
循环打印不同的数字序列,比如从 1 到 10 的所有奇数。 编写程序,用for i in range(10): print("加油!")
来重复打印一句话 10 次。
4. 循环变量的妙用 (10 分钟)
- 循环变量: 在
for i in range(n):
中,i
就是循环变量。在每次循环中,i
会自动变成序列中的下一个值。我们可以在循环体内部使用这个变量。 - 示例:
# 打印 1 到 5 的平方 for i in range(1, 6): print(i, "的平方是", i * i) # 输出会是: # 1 的平方是 1 # 2 的平方是 4 # ...
- 结合
input()
: 可以让用户输入一个数字,然后用range()
结合for
循环打印从 1 到这个数字的所有整数。limit_str = input("请输入一个正整数:") limit = int(limit_str) for num in range(1, limit + 1): # 从 1 到 limit print(num)
- 动手实践: 编写程序,让用户输入一个数字 n,然后打印从 1 到 n 的所有数字。
5. 课堂练习 (15 分钟)
让学生独立完成以下练习:
- 练习 1: 编写一个程序,使用
for
循环打印 7 次“编程很有趣!”# 在这里写你的代码 # TODO: 使用 for 循环重复打印
- 练习 2: 编写一个程序,使用
for
循环计算 1 到 10 的所有整数的和。(提示:在循环前创建一个变量total = 0
,在循环体内部用total = total + 循环变量
来累加)。 - 练习 3: 编写一个程序,询问用户一个字符串,然后使用
for
循环遍历字符串,把字符串里的每个字符后面都加上一个星号*
并打印出来。例如:输入 “Python”,输出 “Python“。(提示:可以在循环内部打印循环变量 + "*"
,并使用print(..., end="")
让打印不换行)。
6. 总结与提问 (10 分钟)
- 回顾: 回顾本节课内容:循环的作用,
for
循环的语法,range()
函数的用法(单参数、双参数、三参数,包头不包尾),循环变量,如何用for
循环重复固定次数和遍历序列。 - 提问:
for char in "你好": print(char)
会打印什么?for i in range(5): print(i)
会打印哪些数字?for j in range(2, 8, 2): print(j)
会打印哪些数字?range(10, 0, -1)
能用来做什么?
- 答疑: 回答学生问题。
7. 布置课后作业 (5 分钟)
- 作业 1: 编写一个程序,使用
for
循环打印从 20 到 1 的倒序数字。 - 作业 2: 编写一个程序,使用
for
循环计算 1 到 50 之间所有偶数的和。(提示:可以在range()
中设置步长为 2,或者在循环内部使用if
判断是否是偶数)。 - 作业 3: 编写一个程序,询问用户一个数字 n,使用
for
循环打印出 1 到 n 的乘积(即计算 n 的阶乘)。(提示:在循环前创建一个变量product = 1
,在循环内部用product = product * 循环变量
来累乘)。 - 作业 4: (选做) 编写一个程序,询问用户一个字符串,使用
for
循环遍历字符串,统计其中字母 ‘a’ 出现的次数(不区分大小写)。(提示:在循环外部创建一个计数器,在循环内部使用if
判断当前字符是否是 ‘a’ 或 ‘A’,如果是则计数器加一)。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)