Skip to content

循环与规律创作(上)——从“重复劳动”到for循环的效率魔法

课题

用for循环解锁“重复图案”的密码

教学时间

2课时(90分钟)

课前准备

  • 教师端:电脑(Python 3.10+)、投影仪、多媒体课件(含生活中重复图案视频:瓷砖铺贴、蜂巢结构、音乐节拍)、实物道具(带重复花纹的围巾、六边形积木)、“循环指令卡”(写有“画5个圆”“走3步右转”等)。
  • 学生端:电脑(Python环境,预装turtle库)、坐标纸、彩色笔(绘制图案草稿)、笔记本(记录循环规律)。
  • 教学素材:代码模板(含基础循环框架)、分层任务单(基础/进阶)、“规律发现者”勋章、AI代码小助手(可生成循环绘图示例)。

一、导入活动:从“重复的智慧”到循环逻辑(15分钟)

活动1:“手动画10个圆”——体验重复的低效

  • 任务:让学生在坐标纸上用圆规画10个大小相同、间隔相等的圆,计时1分钟。
  • 提问:“画到第5个时有没有觉得麻烦?如果要画100个,怎么办?”引导发现“重复劳动需要更高效的方法”。

活动2:“找规律猜图形”——感知循环的本质

  • 展示图片:①瓷砖按“方-圆-方-圆”排列;②蜂巢的六边形重复结构;③音乐简谱“do-re-mi-do-re-mi”。
  • 小组讨论:“这些图案/声音有什么共同点?”(核心:重复出现的单元+次数)。
  • 类比:“计算机处理重复任务时,用‘循环’指令——就像给瓷砖工人一张‘每30cm贴1块方砖’的纸条,不用每次单独说”。

二、知识点讲解:for循环基础与turtle绘图应用(30分钟)

模块1:认识for循环——“重复做n次”的指令(12分钟)

  • 核心概念:for循环是“让一段代码重复执行指定次数”的语法,格式:
    python
    for 变量 in range(次数):
        重复执行的代码(注意缩进!)
  • 生活类比
    • “for i in range(5): 跑步” → 相当于“跑5圈”(i是圈数计数器,从0到4);
    • 缩进的作用:“被缩进的代码”才是循环体内要重复的内容(用“给工人的纸条上画框的内容”比喻)。

模块2:用for循环绘制重复图形(18分钟)

  • 案例1:画5个间隔相等的圆(结合turtle库):

    python
    import turtle
    t = turtle.Turtle()  # 创建绘图角色
    t.speed(1)  # 放慢速度,看清过程
    
    # 循环5次:每次画圆+移动一段距离
    for i in range(5):
        t.circle(30)  # 画半径30的圆
        t.penup()     # 抬笔(不画线)
        t.forward(60) # 向前移动60(圆直径,避免重叠)
        t.pendown()   # 落笔(准备画下一个)
    
    turtle.done()  # 保持窗口
    • 关键:range(5)控制次数,forward(60)控制间隔(数学:圆直径=2×半径)。
  • 案例2:用循环画正方形(复习巩固)

    python
    for i in range(4):  # 正方形4条边
        t.forward(100)
        t.right(90)     # 右转90度(数学:正方形内角)
    • 对比:不用循环需要写4遍forward+right,循环让代码更简洁(“少写3行,少犯3次错”)。

三、练习题设计:分层任务+规律应用(30分钟)

基础任务(全员完成):“彩虹糖葫芦”

  • 要求:用for循环画5个颜色不同的圆(红→橙→黄→绿→蓝),间隔50像素,半径20。
  • 提示:用列表存储颜色colors = ["red", "orange", "yellow", "green", "blue"],循环中用t.color(colors[i])调用。
  • 代码框架:
    python
    import turtle
    t = turtle.Turtle()
    colors = ["red", "orange", "yellow", "green", "blue"]
    
    for i in range(5):
        t.color(colors[i])  # 第i个圆用第i种颜色
        t.begin_fill()
        t.circle(20)        # 半径20
        t.end_fill()
        t.penup()
        t.forward(50)       # 间隔50
        t.pendown()
    
    turtle.done()

进阶任务(选做):“旋转的星星”

  • 要求:用for循环画8个星星,每次画完后旋转45度(360÷8=45,数学:均匀分布),形成圆形图案。
  • 支持:打开AI代码小助手,输入“用turtle画8个旋转的星星”,获取星星绘制函数draw_star(size),学生补充循环逻辑。

教师巡视重点:

  • 纠正缩进错误(忘记缩进或缩进不一致,导致“只执行一次”);
  • 引导发现“次数与角度的关系”(如8个图形对应旋转360/8=45度)。

四、讲解与互评:从“代码”到“规律”(10分钟)

  1. 问题诊断:投屏典型错误案例(如“圆重叠”——间隔太小;“颜色不变”——未用colors[i]),集体分析原因。
  2. 规律分享:请学生说“你的循环中,重复的单元是什么?次数是多少?隐藏的数学规律是什么?”(如“每个圆间隔=2×半径,保证不重叠”)。
  3. 创意评选:投票选出“最整洁的循环代码”(缩进规范)和“最有数学美感的图案”(间隔均匀),颁发勋章。

五、总结与作业(5分钟)

课堂总结:

  • for循环的作用:高效执行重复任务,格式是for i in range(次数): 缩进的代码
  • 核心三要素:重复单元(循环体内的代码)、次数range(n))、变化量(如颜色、位置、角度);
  • 与数学的关联:间隔、角度等参数需要用除法/乘法计算(如均匀分布=360÷次数)。

课后作业:

  1. 观察家中1个重复图案(如地砖、窗帘花纹),用文字记录“重复单元”和“次数”,下次课分享;
  2. 尝试修改“彩虹糖葫芦”代码:把圆变成正方形,间隔改为60,看看会发生什么。

教学理论支撑:

  1. 皮亚杰形式运算阶段理论:通过“手动画圆”(具体操作)到“循环代码”(抽象逻辑)的过渡,培养学生对“重复规律”的形式化表达能力。
  2. 维果茨基最近发展区:基础任务(固定参数)→进阶任务(角度计算)→AI助手辅助,三层支架帮助不同水平学生掌握循环逻辑。
  3. STEAM教育融合:结合数学(间隔计算、角度分配)、艺术(色彩搭配、图案对称)、工程(高效重复的逻辑设计),体现“做中学”的跨学科整合。