Skip to content

0201 循环画五角星 ​

做成什么 ​

海龟连续画五条等长的线,每次转 144 度,最后一笔正好回到起点,得到一个一笔画成的五角星。

给谁用:已经能画正方形和三角形,开始接触"角度要算"的孩子。这一页的关键不是画图,是理解 144 这个数字。

需要什么基础 ​

  • 会写 for 循环
  • 知道三角形外角是 120 度(360÷3)、正方形是 90 度(360÷4)
  • 能理解"转的是外角,不是内角"

完整代码 ​

python
import turtle

t = turtle.Turtle()
t.speed(3)
t.pensize(2)
t.pencolor("goldenrod")

for i in range(5):
    t.forward(150)
    t.right(144)     # 关键:144 = 180 - 36

turtle.done()

容易卡在哪 ​

写成 72 度,画出来是乱线。 72 = 360÷5,那是画正五边形用的角度;五角星要的是 180−36 = 144。这是最常见的一个错,孩子如果写 72,不要直接改,让他先跑一遍看结果,再一起算为什么。

画出来是五角星但方向不对,头朝下。 turtle 默认朝右(0 度方向)。开始前加一句 t.left(90) 让海龟先朝上,星星就正了。

线条没连回起点,差了一点。 浮点误差,肉眼几乎看不出,不影响。想更精确可以用 t.setheading() 显式设定角度。

想画填充的实心五角星。

python
t.begin_fill()
t.fillcolor("gold")
for i in range(5):
    t.forward(150)
    t.right(144)
t.end_fill()

注意五角星用 begin_fill() 填充时中心那块小五边形也会被填上,这是正常的。

怎么改 ​

  1. 改 forward(150) 的步长,看大小变化
  2. 改成七角星:range(7) + right(180 - 180/7)(约 154.3 度)
  3. 画完一个后抬笔移位,画出一排大小不同的星星
  4. 用 t.penup() / t.pendown() 画出虚线效果的星星

第 2 步有点难,可以提示:180 - 180/边数。算不出来也没关系,让他试几个数,看哪个能闭合——试错本身就是在学角度。

文件下载与版本 ​

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

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

ICP备案号:鲁ICP备2026010307号