Skip to content

循环与规律创作(下)——嵌套循环与复杂图案的数学逻辑

课题

用嵌套循环解锁“多层重复”的秘密

教学时间

2课时(90分钟)

课前准备

  • 教师端:电脑(Python 3.10+)、投影仪、多媒体课件(含多层重复图案:棋盘格、砖墙、树木年轮)、实物道具(多层抽屉、俄罗斯套娃)、“嵌套指令卡”(外层:“3行”,内层:“每行4个”)。
  • 学生端:电脑(Python环境)、方格纸(绘制棋盘格草稿)、计算器(计算图形参数)、小组任务卡(含项目主题)。
  • 教学素材:嵌套循环代码模板、“多层规律分析表”(记录外层/内层循环的作用)、AI代码小助手(可生成嵌套循环框架)。

一、导入活动:从“多层重复”到嵌套循环(15分钟)

活动1:“摆棋子”游戏——体验双层重复

  • 任务:用围棋子在桌面摆“3行4列”的长方形阵,记录步骤。
  • 学生反馈:“先摆第1行4个,再摆第2行4个,再摆第3行4个”。
  • 提炼逻辑:外层循环控制“行数”,内层循环控制“每行的个数”——这就是“嵌套循环”。

活动2:“拆俄罗斯套娃”——理解循环嵌套结构

  • 展示套娃:“最大的娃里有中娃,中娃里有小娃——就像循环里套循环”。
  • 类比代码:
    python
    # 外层循环:3个套娃
    for 大娃 in range(3):
        # 内层循环:每个套娃里有2个装饰
        for 装饰 in range(2):
            print("画装饰")

二、知识点讲解:嵌套循环与复杂图案设计(30分钟)

模块1:嵌套循环的语法与执行逻辑(12分钟)

  • 核心概念:一个循环体内包含另一个循环(外层循环控制“大重复”,内层循环控制“小重复”),格式:
    python
    for 外层变量 in range(外层次数):
        # 外层循环要做的事(如换行、移动位置)
        for 内层变量 in range(内层次数):
            # 内层循环要做的事(如画一个小图形)
  • 执行顺序
    • 外层第1次循环 → 内层循环执行完所有次数 → 外层第2次循环 → 内层循环执行完所有次数 → …直到外层结束。
  • 生活案例:打印3行5列的星号阵(*):
    python
    for row in range(3):  # 3行
        for col in range(5):  # 每行5个
            print("*", end=" ")  # end=" "表示不换行
        print()  # 每行结束后换行
    输出:
    * * * * * 
    * * * * * 
    * * * * *

模块2:用嵌套循环绘制棋盘格(18分钟)

  • 需求:画8×8的黑白棋盘(每个小方格边长30,相邻方格颜色交替)。
  • 数学分析
    • 外层循环:8行(range(8)),每行结束后“回到行首+向下移动30”;
    • 内层循环:8列(range(8)),每个方格颜色=“黑” if (行+列)为偶数 else “白”(交替逻辑)。
  • 代码实现
    python
    import turtle
    t = turtle.Turtle()
    t.speed(0)  # 最快速度
    size = 30  # 方格边长
    
    for row in range(8):  # 外层:8行
        for col in range(8):  # 内层:8列
            # 计算颜色(行列和为偶→黑,奇→白)
            if (row + col) % 2 == 0:
                t.color("black")
            else:
                t.color("white")
            # 画方格(填充)
            t.begin_fill()
            for _ in range(4):  # 小循环:画正方形
                t.forward(size)
                t.right(90)
            t.end_fill()
            # 移动到下一列
            t.forward(size)
        # 每行结束后:回到行首,向下移动一行
        t.penup()
        t.goto(0, -(row + 1) * size)  # y坐标负方向移动(向下)
        t.pendown()
    
    turtle.done()

三、练习题设计:分层任务+小组项目(30分钟)

基础任务(全员完成):“彩色网格”

  • 要求:用嵌套循环画4×4网格,每个方格边长40,颜色按“红→绿→蓝→黄”循环(每行重复这4种颜色)。
  • 提示:颜色列表colors = ["red", "green", "blue", "yellow"],内层用colors[col]调用。

进阶任务(选做):“同心圆阵”

  • 要求:外层循环控制“圆的层数”(5层),内层循环控制“每层的圆数量”(第1层1个,第2层2个…第5层5个),每层圆半径递增20。

小组项目(补充课时核心):“四季树”主题创作

  • 任务:用嵌套循环设计“一棵有年轮的树”——外层循环画5圈年轮(半径递增10),内层循环在年轮外画树叶(每圈12片叶子,均匀分布)。
  • 分工:1人设计年轮参数(半径、颜色),1人设计树叶逻辑(角度360÷12=30度),1人调试代码。
  • AI支持:用AI代码小助手生成“画树叶的函数”,小组修改参数适配年轮。

四、讲解与互评:从“图案”到“逻辑”(10分钟)

  1. 代码拆解:选1组“四季树”项目,让学生讲解“外层循环做了什么?内层循环做了什么?数学规律是什么?”(如“每圈树叶数量=层数×2”)。
  2. 问题复盘:讨论“内层循环忘记缩进导致只画1片叶子”“角度计算错误导致树叶重叠”等问题的解决方法。
  3. 跨组互评:用“多层规律分析表”为其他组评分(维度:逻辑清晰度、数学准确性、创意性)。

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

课堂总结:

  • 嵌套循环的作用:处理**“大重复包含小重复”**的任务,外层控制整体结构,内层控制局部细节;
  • 关键逻辑:先确定“外层次数”和“内层次数”,再设计“外层变化量”(如行数、半径)和“内层变化量”(如列数、角度);
  • 与数学的深度关联:图案的对称性、均匀性依赖于除法(如360÷数量=间隔角度)和加减法(如行列和控制颜色)。

课后作业:

  1. 用嵌套循环画“楼梯”(外层5级,内层每级的台阶数=级数,如第1级1阶,第2级2阶);
  2. 记录项目中“最有成就感的bug解决过程”,下次课分享。

教学理论支撑:

  1. 少年教育心理学的“逻辑推理发展”:通过嵌套循环的“双层逻辑”训练,提升少年的层级思维能力(从“单一重复”到“多层嵌套”)。
  2. 自我决定理论:小组项目赋予学生“参数设计权”和“分工自主权”,满足自主性需求,增强编程动机。
  3. STEAM教育的工程思维:“四季树”项目需要拆解任务(年轮/树叶)、设计参数(半径/角度)、迭代调试,体现“工程设计流程”。