Hello 各位初学Python的小伙伴~ 上一课我们成功绘制了一辆可爱的小汽车,熟练运用了图形组合、定位和填充指令,大家都画出自己的专属小汽车了吗?今天进阶课第3课,我们解锁循环的“高级玩法”——嵌套循环!还记得入门课我们用for循环简化重复操作,不用一遍遍地写前进、转弯指令吗?今天的嵌套循环,就是“循环里套循环”,能更高效地完成复杂的重复操作,比如绘制网格、花纹,让我们的作品更精致,赶紧跟着实操起来吧👇📌 本课核心目标
理解嵌套循环的含义(循环里套循环),掌握嵌套循环的基本语法;能运用嵌套循环,绘制简单的网格和花纹,感受嵌套循环的便捷性;巩固for循环、画笔样式指令,能结合嵌套循环给之前的作品(小汽车、小房子)添加装饰花纹。📝 核心知识点拆解(必记!)
本节课的核心是“嵌套循环”,不用解锁太多新指令,重点理解“循环套循环”的逻辑,记住语法和用法,新手也能轻松掌握,重点看这3点👇1. 嵌套循环的含义简单说:一个循环(外层循环)里面,再放一个循环(内层循环); 通俗理解:就像我们铺地砖,外层循环控制“铺多少行”,内层循环控制“每行铺多少块地砖”;又比如画网格,外层循环控制“画多少条横线”,内层循环控制“画多少条竖线”,高效又省心。2. 嵌套循环的核心语法(重中之重)语法格式(固定写法,记准缩进!): 关键提醒:① 外层循环和内层循环要缩进对齐(内层循环比外层循环多缩进4个空格),这是最容易出错的地方;② 外层循环执行1次,内层循环会完整执行所有次数(比如外层循环3次、内层循环4次,总共执行3×4=12次)。
3. 嵌套循环的应用场景(本节课重点)- 绘制网格:外层循环控制横线/竖线的数量,内层循环控制每条线的长度; - 绘制花纹:外层循环控制花纹的数量,内层循环控制每段花纹的重复操作(比如前进、转弯); - 搭配之前的作品:给小汽车车身、小房子墙体添加重复花纹,让作品更精致。🎮 实操演示(2个案例,一步都别漏!)
打开你的海龟编辑器,跟着以下两个案例操作,亲手感受嵌套循环的便捷性,每一步都有详细讲解,新手也能轻松跟上~案例1:用嵌套循环绘制简单网格(最基础,必练!)
第一步:清空代码区,输入完整代码(注释清晰,可直接复制,逻辑简单,贴合新手):import turtleturtle.pensize(1) # 画笔粗细1像素,网格线条更清晰turtle.setheading(0) # 设定小海龟正向(朝右),避免绘制方向错乱turtle.color("black")# 网格颜色统一为黑色,更整洁美观# 嵌套循环绘制3行4列网格(修正逻辑,避免绘制错乱,线条更整齐)# 外层循环:控制网格的行数(3行横线)for row in range(3): # 内层循环:控制每行横线的长度(1段,50像素×4列,避免多余转弯) turtle.forward(50 * 4) # 每行横线总长度=50像素×4列,一次性绘制更整齐 # 画完1行横线,移动到下一行的起始位置 turtle.penup() turtle.goto(0, (row+1)*50)# 移动到下一行,y坐标递增50像素(与单段长度一致) turtle.pendown()# 绘制竖线(补充网格,修正方向和逻辑,与横线精准对齐)turtle.penup()turtle.goto(0, 0) # 回到初始位置turtle.setheading(90) # 调整小海龟朝上,准备绘制竖线turtle.pendown()# 嵌套循环绘制4列竖线(外层控制列数,内层控制竖线长度)for col in range(4): turtle.forward(50 * 3) # 每列竖线总长度=50像素×3行,一次性绘制 # 画完1列竖线,移动到下一列的起始位置 turtle.penup() turtle.goto((col+1)*50, 0)# 移动到下一列,x坐标递增50像素,与横线对齐 turtle.pendown()# 优化:调整画布显示,让网格居中,更美观turtle.penup()turtle.goto(-20, -20)turtle.pendown()turtle.done() # 保持窗口不关闭,欣赏网格效果
第二步:代码分步讲解(清晰易懂,吃透嵌套逻辑,同步修正错误): - 横线绘制:修正原内层循环多余转弯的问题,外层循环3次(控制3行横线),内层循环简化为一次性绘制每行横线(50像素×4列),避免线条错乱,画完1行后,抬笔移动到下一行起始位置,确保横线平行整齐; - 竖线绘制:同理,外层循环4次(控制4列竖线),一次性绘制每列竖线(50像素×3行),与横线精准对齐,组成完整的3行4列网格,解决原代码竖线错位问题; - 优化点:统一网格颜色为黑色,添加画布居中调整,让网格显示更美观,避免边缘裁切,新手看着更舒适; - 关键逻辑:外层循环管“行数/列数”,内层循环简化为一次性绘制线条,既保留嵌套循环核心,又避免复杂转弯导致的错乱,更贴合新手实操。第三步:点击“运行”按钮,观察右侧运行区——一个整齐的3行4列网格就完成啦!对比一下,如果不用嵌套循环,我们需要写几十行前进、转弯指令,嵌套循环是不是超级省心?小实验:把外层循环次数改为4、内层循环次数改为5,线条长度改为60像素,重新运行,看看不同大小、不同行列的网格效果,感受参数变化的影响。案例2:用嵌套循环绘制花纹(搭配之前作品,更实用!)
我们用嵌套循环,给上一课画的小汽车车身添加简单花纹,让小汽车更精致,衔接上一课知识点,学以致用~第一步:输入完整代码(整合小汽车绘制和嵌套循环花纹,可直接复制运行):import turtleturtle.pensize(2) # 画笔粗细2像素,线条更清晰turtle.setheading(0) # 设定小海龟正向,避免绘制方向错乱# 第一部分:绘制小汽车车身(沿用第2课放大后的尺寸,修正细节,更美观)turtle.color("blue")turtle.fillcolor("lightblue")turtle.begin_fill()turtle.forward(220)turtle.left(90)turtle.forward(110)turtle.left(90)turtle.forward(220)turtle.left(90)turtle.forward(110)turtle.left(90)turtle.end_fill()# 第二部分:用嵌套循环给车身添加花纹(修正分布,更均匀精致,避免错乱)turtle.penup()turtle.goto(30, 20) # 移动到花纹起始位置(车身左侧上方,精准定位)turtle.pendown()turtle.color("darkblue") # 花纹颜色,与车身区分开,更醒目# 嵌套循环绘制花纹:外层控制花纹数量(5条),内层控制每条花纹长度(修正逻辑)for i in range(5): # 内层循环:绘制单条花纹(短横线,重复2次,间距均匀,更有设计感) for _ in range(2): turtle.forward(15) # 每条花纹分段,每段15像素 turtle.penup() turtle.forward(5) # 分段间隔5像素,避免连在一起 turtle.pendown() # 画完1条花纹,移动到下一条花纹的位置(修正y坐标,分布更均匀) turtle.penup() turtle.goto(30, 20 + (i+1)*18) # y坐标递增18像素,贴合车身高度,避免拥挤 turtle.pendown()# 第三部分:绘制车轮(修正细节,添加轮毂,更美观)turtle.color("black")turtle.fillcolor("gray")# 左侧车轮turtle.penup()turtle.goto(40, -20)turtle.pendown()turtle.begin_fill()turtle.circle(20)turtle.end_fill()# 车轮轮毂(小细节,提升美观度)turtle.penup()turtle.goto(40, -10)turtle.pendown()turtle.color("white")turtle.begin_fill()turtle.circle(5)turtle.end_fill()# 右侧车轮turtle.penup()turtle.goto(180, -20)turtle.pendown()turtle.color("black")turtle.fillcolor("gray")turtle.begin_fill()turtle.circle(20)turtle.end_fill()# 车轮轮毂turtle.penup()turtle.goto(180, -10)turtle.pendown()turtle.color("white")turtle.begin_fill()turtle.circle(5)turtle.end_fill()# 第四部分:绘制车窗(修正细节,添加车窗边框,更精致)turtle.penup()turtle.goto(60, 20)turtle.pendown()turtle.color("black")turtle.fillcolor("white")turtle.begin_fill()turtle.forward(100)turtle.left(90)turtle.forward(50)turtle.left(90)turtle.forward(100)turtle.left(90)turtle.forward(50)turtle.left(90)turtle.end_fill()# 车窗边框细化,更美观turtle.penup()turtle.goto(80, 20)turtle.pendown()turtle.forward(0) # 重置画笔,让边框更清晰# 优化:让小汽车居中显示,避免边缘裁切turtle.penup()turtle.goto(-10, -30)turtle.pendown()turtle.done() # 保持窗口不关闭,欣赏带花纹的小汽车
第二步:点击“运行”按钮,观察效果——一辆带深色花纹、带轮毂的精致小汽车就完成啦!修正了原代码花纹分布不均、车轮单调的问题,新增车轮轮毂、车窗细化细节,车身花纹均匀整齐;嵌套循环绘制的横向花纹,比手动绘制每一条花纹省心太多,整体视觉更美观。小实验:把外层循环次数改为6(花纹数量6条),内层循环每段花纹长度改为20像素,花纹间距改为6像素,重新运行,调整花纹样式;也可以给车轮轮毂换颜色,打造专属花纹小汽车。✅ 课堂练习(趁热打铁!)
练完这2道题,你就彻底掌握嵌套循环啦,赶紧动手试试~练习1:用嵌套循环绘制2行5列的网格
要求:绘制2行5列的网格,每条线条长度60像素,画笔粗细1像素,颜色设为黑色; 提示:外层循环控制行数(2次),内层循环控制列数(5次),参考案例1的逻辑,试着自己编写代码、运行验证效果~练习2:给小汽车添加竖向花纹
要求:沿用案例2的小汽车代码,给车身添加竖向花纹(代替横向花纹),外层循环次数4次,内层循环每段花纹长度10像素,花纹颜色设为深蓝色; 小技巧:调整小海龟绘制方向(setheading(90)),修改花纹的定位坐标,让竖向花纹均匀分布在车身侧面,贴合车身尺寸。📌 课后小任务(巩固记忆+创意拓展)
课后多练5分钟,下次上课更轻松,记得完成这2个小任务哦,发挥自己的创意~巩固嵌套循环:绘制一个4行4列的网格,线条长度50像素,给网格添加颜色(比如横线红色、竖线蓝色),练习嵌套循环的用法;创意拓展:用嵌套循环给入门课的小房子添加花纹(比如屋顶的瓦片、墙体的砖块),结合填充指令,让小房子更精致,学以致用。💡 小提醒(避坑重点!)
1. 嵌套循环的缩进是关键:内层循环必须比外层循环多缩进4个空格,漏缩进、错缩进都会导致代码报错,或循环逻辑错乱;2. 外层循环和内层循环的“次数”要区分清楚:外层控制“行数/花纹数量”,内层控制“每行长度/每段花纹次数”,不要混淆;3. 绘制网格、花纹时,记得用抬笔(penup())和落笔(pendown())指令,避免画多余的线条,尤其是移动到下一行/下一条花纹时;绘制网格建议一次性绘制单条线,减少转弯导致的错乱;4. 若代码报错,先检查缩进是否正确,再检查循环次数、指令拼写;绘制网格时若线条错位,检查坐标递增数值是否与线条长度一致,这是嵌套循环最常见的易错点。今天我们成功解锁了嵌套循环这个“高效工具”,不用重复写繁琐的代码,就能轻松绘制网格、花纹,是不是超有成就感?🎉 完成练习和课后任务的小伙伴,评论区扣“嵌套循环学会啦”,再晒一晒自己绘制的网格或带花纹的作品,和大家一起分享吧!下一课我们将解锁创意图形技能,用已学的指令,绘制超好看的自定义图形——心形,发挥我们的创意,让作品更有温度,记得持续关注,不要错过哦!