第六课:让程序偷个懒 – 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’,如果是则计数器加一)。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。