Skip to content

0301 嵌套循环画风车 ​

做成什么 ​

先画一个三角形,然后整体转 90 度再画一个,重复四次,得到一架四叶风车。

给谁用:能熟练写单层循环,第一次接触"循环套循环"的孩子。这是理解嵌套循环最直观的一个例子——外层管"画几个叶片",内层管"一个叶片怎么画"。

需要什么基础 ​

  • 熟悉 for 循环
  • 已经画过正三角形(知道外角是 120 度)
  • 知道代码缩进决定"谁在谁里面"

完整代码 ​

python
import turtle

t = turtle.Turtle()
t.speed(5)
t.pensize(2)

for i in range(4):        # 外层:画四个叶片
    t.pencolor("tomato")
    for j in range(3):    # 内层:每个叶片是一个三角形
        t.forward(80)
        t.right(120)
    t.right(90)           # 一个叶片画完,整体转 90 度

turtle.done()

容易卡在哪 ​

两个循环变量搞混。 外层用 i,内层用 j,别都写成 i。虽然 Python 不会报错,但读代码的时候会分不清谁管什么。

最后的 t.right(90) 缩进错了。 它必须和内层 for 对齐(属于外层循环体),如果缩进到内层里面,每个三角形都会多转一次,画出来是一团乱线。这是这一页最高频的错误。

画出来四个叶片重叠在一起。 说明忘了写最后那句 t.right(90),或者缩进错了位置。

颜色想每个叶片不一样。 准备一个颜色列表,用外层循环变量取:

python
colors = ["tomato", "gold", "seagreen", "steelblue"]
for i in range(4):
    t.pencolor(colors[i])
    for j in range(3):
        t.forward(80)
        t.right(120)
    t.right(90)

怎么改 ​

  1. 把 range(4) 改成 range(6),同时把 right(90) 改成 right(60),变成六叶风车
  2. 内层三角形改成正方形(range(4) + right(90)),看图形怎么变
  3. 每个叶片用不同颜色(上面那段代码)
  4. 让叶片大小递减:t.forward(80 - i * 15),画出一个螺旋风车

第 4 步能把"循环变量可以参与计算"这件事讲明白,比单独讲语法有效得多。

文件下载与版本 ​

  • 环境:Python 3.8+,无需第三方库
  • 单文件源码:直接复制上面的代码即可
  • 整套打包下载正在整理中

最后核对:2026-10-20,Python 3.11 下实际运行通过。

ICP备案号:鲁ICP备2026010307号